X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Fstream.h;h=9917b94df253ed0ae103e834bf0e0ae26e7f3040;hb=1be0350e7ae7a566896a9fe52863dcc22433fc8a;hp=1555d98dc776b653e3be7830155c6171ec0f561d;hpb=1c012a73c8d584d485924348388c0975cdd71831;p=m6w6%2Flibmemcached diff --git a/libtest/stream.h b/libtest/stream.h index 1555d98d..9917b94d 100644 --- a/libtest/stream.h +++ b/libtest/stream.h @@ -48,58 +48,66 @@ namespace stream { namespace detail { template - class cerr { + class channel { private: public: typedef std::basic_ostringstream stream_buffer; public: - void operator()(const stream_buffer &s) + void operator()(const stream_buffer& s, std::ostream& _out, + const char* filename, int line_number, const char* func) { - std::cerr << s.str() << std::endl; - } - }; - -template - class make_cerr { - private: - - public: - typedef std::basic_ostringstream stream_buffer; - - public: - void operator()(const stream_buffer &s) - { - std::cerr << std::endl << s.str() << std::endl; - } - }; - -template - class cout { - private: - - public: - typedef std::basic_ostringstream stream_buffer; - - public: - void operator()(const stream_buffer &s) - { - std::cout << s.str() << std::endl; + if (filename) + { + _out + << filename + << ":" + << line_number + << ": in " + << func << "() " + << s.str() + << std::endl; + } + else + { + _out + << s.str() + << std::endl; + } } }; template - class clog { + class channelln { private: public: typedef std::basic_ostringstream stream_buffer; public: - void operator()(const stream_buffer &s) + void operator()(const stream_buffer& s, std::ostream& _out, + const char* filename, int line_number, const char* func) { - std::cerr<< s.str() << std::endl; + if (filename) + { + _out + << std::endl + << filename + << ":" + << line_number + << ": in " + << func << "() " + << s.str() + << std::endl; + } + else + { + _out + << std::endl + << s.str() + << std::endl; + } } }; @@ -107,37 +115,30 @@ template