00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018                                                                                                 
00019                              
00020 #ifndef _StdioNode_incl_
00021 #define _StdioNode_incl_
00022 
00023 #include <rlog/common.h>
00024 #include <rlog/RLogNode.h>
00025 
00026 namespace rlog
00027 {
00028     
00029     class RLOG_DECL StdioNode : public RLogNode
00030     {
00031     public:
00032         enum StdioFlags
00033         {
00034             DefaultOutput  = 0, 
00035             OutputColor    = 1, 
00036             OutputThreadId = 2, 
00037             OutputContext  = 4, 
00038             OutputChannel  = 8  
00039         };
00040 
00041         StdioNode( int fdOut = 2, int flags = (int)DefaultOutput );
00042         
00043         StdioNode( int fdOut, bool colorize_if_tty );
00044 
00045         virtual ~StdioNode();
00046 
00047         void subscribeTo( RLogNode *node );
00048 
00049     protected:
00050         virtual void publish( const RLogData &data );
00051 
00052         bool colorize;
00053         bool outputThreadId;
00054         bool outputContext;
00055         bool outputChannel;
00056         int fdOut;
00057 
00058         StdioNode( const StdioNode & );
00059         StdioNode &operator = ( const StdioNode & );
00060     };
00061 
00062 }
00063 
00064 #endif