/* -*- C++ -*- */ // $Id$ // ============================================================================ // // = LIBRARY // ace // // = FILENAME // Log_Record.h // // = AUTHOR // Doug Schmidt // // ============================================================================ // These need to go outside of the #ifdef to avoid problems with // circular dependencies... #include "ace/ACE.h" #include "ace/Log_Priority.h" #if !defined (ACE_LOG_RECORD_H) #define ACE_LOG_RECORD_H class ACE_Export ACE_Log_Record { public: // = TITLE // Defines the structure of an ACE logging record. enum { MAXLOGMSGLEN = ACE_MAXLOGMSGLEN, // Maximum size of a logging message. ALIGN_WORDB = 8, // Most restrictive alignment. VERBOSE_LEN = 128 // Size used by verbose mode. // 20 (date) + 15 (host_name) + 10 (pid) + 10 (type) + 4 (@) ... + // ? (progname) }; // = Initialization ACE_Log_Record (void); ACE_Log_Record (ACE_Log_Priority lp, long time_stamp, long pid); // Create a and set its priority, time stamp, and // process id. ACE_Log_Record (ACE_Log_Priority lp, const ACE_Time_Value &time_stamp, long pid); // Create a and set its priority, time stamp, and // process id. ~ACE_Log_Record (void); // Default dtor. #if !defined (ACE_HAS_WINCE) // @@ Sould this be ACE_LACKS_IOSTREAM_TOTALLY? int print (const ASYS_TCHAR host_name[], u_long verbose_flag, FILE *fp = stderr); // Write the contents of the logging record to the appropriate // . int print (const ASYS_TCHAR host_name[], u_long verbose_flag, ostream &stream); // Write the contents of the logging record to the appropriate // . #else int format_msg (const ASYS_TCHAR host_name[], u_long verbose_flag, CString *msg); int print (const ASYS_TCHAR host_name[], u_long verbose_flag, FILE *fp); // Write the contents of the logging record to the appropriate // . int print (const ASYS_TCHAR host_name[], u_long verbose_flag, ACE_CE_Bridge *log_ = 0); // For Windows CE, the default is to log messages to a preset // window. #endif /* ! ACE_HAS_WINCE */ static const ASYS_TCHAR *priority_name (ACE_Log_Priority p); // Returns a character array with the string form of the // parameter. This is used for the verbose // printing format. // = Marshall/demarshall void encode (void); // Encode the for transmission on the network. void decode (void); // Decode the received from the network. // = Set/get methods long type (void) const; // Get the type of the . void type (long); // Set the type of the . u_long priority (void) const; // Get the priority of the . This is computed // as the base 2 logarithm of (which must be a power of 2, // as defined by the enums in ). void priority (u_long num); // Set the priority of the (which must be a // power of 2, as defined by the enums in ). long length (void) const; // Get the length of the . void length (long); // Set the length of the . const ACE_Time_Value &time_stamp (void) const; // Get the time stamp of the . void time_stamp (const ACE_Time_Value &); // Set the time stamp of the . long pid (void) const; // Get the process id of the . void pid (long); // Set the process id of the . ASYS_TCHAR *msg_data (void); // Get the message data of the . void msg_data (const ASYS_TCHAR *data); // Set the message data of the . void msg_data_len (size_t len); // Set the size of the message data of the . void dump (void) const; // Dump the state of an object. ACE_ALLOC_HOOK_DECLARE; // Declare the dynamic allocation hooks. private: void round_up (void); // Round up to the alignment restrictions. ACE_INT32 length_; // Total length of the logging record in bytes. This field *must* // come first in order for various IPC framing mechanisms to work // correctly. In addition, the field must be an ACE_INT32 in order // to be passed portably across platforms. long type_; // Type of logging record. ACE_Time_Value time_stamp_; // Time that the logging record was generated. long pid_; // Id of process that generated the logging record. ASYS_TCHAR msg_data_[MAXLOGMSGLEN]; // Logging record data static const ASYS_TCHAR *priority_names_[]; // Symbolic names for the enums. }; #if !defined (ACE_LACKS_INLINE_FUNCTIONS) #include "ace/Log_Record.i" #endif #endif /* ACE_LOG_RECORD_H */