#include "ace/Log_Record.h"#include "ace/Log_Msg.h"#include "ace/ACE.h"#include "ace/OS_NS_stdio.h"#include "ace/OS_NS_time.h"#include "ace/CDR_Stream.h"#include "ace/Auto_Ptr.h"#include "ace/Truncate.h"#include "ace/streams.h"#include "ace/OS_Memory.h"
Go to the source code of this file.
Functions | |
| int | operator<< (ACE_OutputCDR &cdr, const ACE_Log_Record &log_record) |
| int | operator>> (ACE_InputCDR &cdr, ACE_Log_Record &log_record) |
| int operator<< | ( | ACE_OutputCDR & | cdr, | |
| const ACE_Log_Record & | log_record | |||
| ) |
Definition at line 328 of file Log_Record.cpp.
{
// The written message length can't be more than 32 bits (ACE_CDR::ULong)
// so reduce it here if needed.
ACE_CDR::ULong u_msglen =
ACE_Utils::truncate_cast<ACE_CDR::ULong> (log_record.msg_data_len ());
// Insert each field from <log_record> into the output CDR stream.
cdr << ACE_CDR::Long (log_record.type ());
cdr << ACE_CDR::Long (log_record.pid ());
cdr << ACE_CDR::LongLong (log_record.time_stamp ().sec ());
cdr << ACE_CDR::Long (log_record.time_stamp ().usec ());
cdr << u_msglen;
#if defined (ACE_USES_WCHAR)
cdr.write_wchar_array (log_record.msg_data (), u_msglen);
#else
cdr.write_char_array (log_record.msg_data (), u_msglen);
#endif /* ACE_USES_WCHAR */
return cdr.good_bit ();
}
| int operator>> | ( | ACE_InputCDR & | cdr, | |
| ACE_Log_Record & | log_record | |||
| ) |
Definition at line 351 of file Log_Record.cpp.
{
ACE_CDR::Long type;
ACE_CDR::Long pid;
ACE_CDR::LongLong sec;
ACE_CDR::Long usec;
ACE_CDR::ULong buffer_len;
// Extract each field from input CDR stream into <log_record>.
if ((cdr >> type) && (cdr >> pid) && (cdr >> sec) && (cdr >> usec)
&& (cdr >> buffer_len)) {
ACE_TCHAR *log_msg;
ACE_NEW_RETURN (log_msg, ACE_TCHAR[buffer_len + 1], -1);
auto_ptr<ACE_TCHAR> log_msg_p (log_msg);
log_record.type (type);
log_record.pid (pid);
log_record.time_stamp (ACE_Time_Value (ACE_Utils::truncate_cast<time_t> (sec),
usec));
#if defined (ACE_USES_WCHAR)
cdr.read_wchar_array (log_msg, buffer_len);
#else
cdr.read_char_array (log_msg, buffer_len);
#endif /* ACE_USES_WCHAR */
log_msg[buffer_len] = '\0';
if (-1 == log_record.msg_data (log_msg))
return -1;
}
return cdr.good_bit ();
}
1.7.0