Skip to content

Commit

Permalink
Fixed issue #39 User defined types no longer streamable
Browse files Browse the repository at this point in the history
  • Loading branch information
Gabi120 committed Jan 27, 2015
1 parent d071e5f commit 56ee731
Showing 1 changed file with 75 additions and 8 deletions.
83 changes: 75 additions & 8 deletions include/spdlog/details/line_logger.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
/*************************************************************************/

#pragma once

#include <type_traits>
#include "../common.h"
#include "../logger.h"
#ifdef SPDLOG_CLOCK_COARSE
Expand Down Expand Up @@ -70,11 +70,11 @@ class line_logger
#ifndef SPDLOG_CLOCK_COARSE
_log_msg.time = log_clock::now();
#else
timespec ts;
::clock_gettime(CLOCK_REALTIME_COARSE, &ts);
_log_msg.time = std::chrono::time_point<log_clock, typename log_clock::duration>(
std::chrono::duration_cast<typename log_clock::duration>(
std::chrono::seconds(ts.tv_sec) + std::chrono::nanoseconds(ts.tv_nsec)));
timespec ts;
::clock_gettime(CLOCK_REALTIME_COARSE, &ts);
_log_msg.time = std::chrono::time_point<log_clock, typename log_clock::duration>(
std::chrono::duration_cast<typename log_clock::duration>(
std::chrono::seconds(ts.tv_sec) + std::chrono::nanoseconds(ts.tv_nsec)));
#endif
_callback_logger->_log_msg(_log_msg);
}
Expand All @@ -96,18 +96,85 @@ class line_logger
}
}


void write(const char* what)
{
if (_enabled)
_log_msg.raw << what;
}

void write(const std::string& what)
{
if (_enabled)
_log_msg.raw << what;
}

void write(int what)
{
if (_enabled)
_log_msg.raw << what;
}

void write(unsigned int what)
{
if (_enabled)
_log_msg.raw << what;
}


void write(long what)
{
if (_enabled)
_log_msg.raw << what;
}

void write(unsigned long what)
{
if (_enabled)
_log_msg.raw << what;
}

void write(long long what)
{
if (_enabled)
_log_msg.raw << what;
}

void write(unsigned long long what)
{
if (_enabled)
_log_msg.raw << what;
}

void write(double what)
{
if (_enabled)
_log_msg.raw << what;
}

void write(long double what)
{
if (_enabled)
_log_msg.raw << what;
}

void write(float what)
{
if (_enabled)
_log_msg.raw << what;
}

void write(char what)
{
if (_enabled)
_log_msg.raw << what;
}


template<typename T>
line_logger& operator<<(const T& what)
{
if (_enabled)
_log_msg.raw << what;
_log_msg.raw.write("{}", what);
return *this;
}

Expand Down

0 comments on commit 56ee731

Please sign in to comment.