Log_Record.h File Reference

#include "ace/Log_Priority.h"
#include "ace/Default_Constants.h"
#include "ace/Basic_Types.h"
#include "ace/iosfwd.h"
#include "ace/Log_Record.inl"

Include dependency graph for Log_Record.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ACE_Log_Record
 Defines the structure of an ACE logging record. More...

Functions

ACE_Export int operator>> (ACE_InputCDR &cdr, ACE_Log_Record &log_record)
ACE_Export int operator<< (ACE_OutputCDR &cdr, const ACE_Log_Record &log_record)


Detailed Description

Id
Log_Record.h 80826 2008-03-04 14:51:23Z wotte

Author:
Douglas C. Schmidt <schmidt@cs.wustl.edu>

Definition in file Log_Record.h.


Function Documentation

ACE_Export int operator<< ( ACE_OutputCDR cdr,
const ACE_Log_Record log_record 
)

Definition at line 328 of file Log_Record.cpp.

References ACE_OutputCDR::good_bit(), ACE_Log_Record::msg_data(), ACE_Log_Record::msg_data_len(), ACE_Log_Record::pid(), ACE_Time_Value::sec(), ACE_Log_Record::time_stamp(), ACE_Log_Record::type(), ACE_Time_Value::usec(), ACE_OutputCDR::write_char_array(), and ACE_OutputCDR::write_wchar_array().

00330 {
00331   // The written message length can't be more than 32 bits (ACE_CDR::ULong)
00332   // so reduce it here if needed.
00333   ACE_CDR::ULong u_msglen =
00334     ACE_Utils::truncate_cast<ACE_CDR::ULong> (log_record.msg_data_len ());
00335 
00336   // Insert each field from <log_record> into the output CDR stream.
00337   cdr << ACE_CDR::Long (log_record.type ());
00338   cdr << ACE_CDR::Long (log_record.pid ());
00339   cdr << ACE_CDR::LongLong (log_record.time_stamp ().sec ());
00340   cdr << ACE_CDR::Long (log_record.time_stamp ().usec ());
00341   cdr << u_msglen;
00342 #if defined (ACE_USES_WCHAR)
00343   cdr.write_wchar_array (log_record.msg_data (), u_msglen);
00344 #else
00345   cdr.write_char_array (log_record.msg_data (), u_msglen);
00346 #endif /* ACE_USES_WCHAR */
00347   return cdr.good_bit ();
00348 }

ACE_Export int operator>> ( ACE_InputCDR cdr,
ACE_Log_Record log_record 
)

Definition at line 351 of file Log_Record.cpp.

References ACE_NEW_RETURN, ACE_InputCDR::good_bit(), ACE_Log_Record::msg_data(), ACE_Log_Record::pid(), ACE_InputCDR::read_char_array(), ACE_InputCDR::read_wchar_array(), ACE_Log_Record::time_stamp(), and ACE_Log_Record::type().

00353 {
00354   ACE_CDR::Long type;
00355   ACE_CDR::Long pid;
00356   ACE_CDR::LongLong sec;
00357   ACE_CDR::Long usec;
00358   ACE_CDR::ULong buffer_len;
00359 
00360   // Extract each field from input CDR stream into <log_record>.
00361   if ((cdr >> type) && (cdr >> pid) && (cdr >> sec) && (cdr >> usec)
00362       && (cdr >> buffer_len)) {
00363     ACE_TCHAR *log_msg;
00364     ACE_NEW_RETURN (log_msg, ACE_TCHAR[buffer_len + 1], -1);
00365     auto_ptr<ACE_TCHAR> log_msg_p (log_msg);
00366     log_record.type (type);
00367     log_record.pid (pid);
00368     log_record.time_stamp (ACE_Time_Value (ACE_Utils::truncate_cast<time_t> (sec),
00369                                            usec));
00370 #if defined (ACE_USES_WCHAR)
00371     cdr.read_wchar_array (log_msg, buffer_len);
00372 #else
00373     cdr.read_char_array (log_msg, buffer_len);
00374 #endif /* ACE_USES_WCHAR */
00375     log_msg[buffer_len] = '\0';
00376     if (-1 == log_record.msg_data (log_msg))
00377       return -1;
00378   }
00379   return cdr.good_bit ();
00380 }


Generated on Tue Feb 2 17:23:15 2010 for ACE by  doxygen 1.4.7