UniSet  2.2.1
LogServerTypes.h
00001 // -------------------------------------------------------------------------
00002 #ifndef LogServerTypes_H_
00003 #define LogServerTypes_H_
00004 // -------------------------------------------------------------------------
00005 #include <ostream>
00006 #include <cstring>
00007 // -------------------------------------------------------------------------
00008 namespace LogServerTypes
00009 {
00010     const unsigned int MAGICNUM = 0x20150531;
00011     enum Command
00012     {
00013         cmdNOP,         
00014         cmdSetLevel,    
00015         cmdAddLevel,    
00016         cmdDelLevel,    
00017         cmdRotate,      
00018         cmdOffLogFile,  
00019         cmdOnLogFile,   
00021         // команды требующий ответа..
00022         cmdList,        
00023         cmdFilterMode   
00024         // cmdSetLogFile
00025     };
00026 
00027     std::ostream& operator<<(std::ostream& os, Command c );
00028 
00029     struct lsMessage
00030     {
00031         lsMessage(): magic(MAGICNUM), cmd(cmdNOP), data(0)
00032         {
00033             std::memset(logname, 0, sizeof(logname));
00034         }
00035         unsigned int magic;
00036         Command cmd;
00037         unsigned int data;
00038 
00039         static const size_t MAXLOGNAME = 30;
00040         char logname[MAXLOGNAME + 1]; // +1 reserverd for '\0'
00041 
00042         void setLogName( const std::string& name );
00043 
00044         // для команды 'cmdSetLogFile'
00045         // static const size_t MAXLOGFILENAME = 200;
00046         // char logfile[MAXLOGFILENAME];
00047     } __attribute__((packed));
00048 
00049     std::ostream& operator<<(std::ostream& os, lsMessage& m );
00050 }
00051 // -------------------------------------------------------------------------
00052 #endif // LogServerTypes_H_
00053 // -------------------------------------------------------------------------