#pragma once typedef void (*trace_message_t)(void* context, const std::string&); // TODO: change to virtual class // invoke trace_listener when << endl is encountered. class vw_ostream : public std::ostream { class vw_streambuf : public std::stringbuf { vw_ostream& parent; public: vw_streambuf(vw_ostream& str) : parent(str){}; virtual int sync(); }; vw_streambuf buf; public: vw_ostream(); void* trace_context; trace_message_t trace_listener; };