log_wrapper.cpp
来自「ACE自适配通信环境(ADAPTIVE Communication Enviro」· C++ 代码 · 共 82 行
CPP
82 行
// Log_Wrapper.cpp,v 4.18 2005/01/21 02:19:20 ossama Exp// client.C#include "Log_Wrapper.h"#include "ace/OS_NS_unistd.h"#include "ace/OS_NS_sys_utsname.h"#include "ace/OS_NS_string.h"#include "ace/OS_NS_netdb.h"ACE_RCSID(Multicast, Log_Wrapper, "Log_Wrapper.cpp,v 4.18 2005/01/21 02:19:20 ossama Exp")Log_Wrapper::Log_Wrapper (void){ sequence_number_ = 0; this->log_msg_.app_id = ACE_OS::getpid ();}Log_Wrapper::~Log_Wrapper (void){}// Set the log_msg_ host address.intLog_Wrapper::open (const int port, const char *mcast_addr){ struct hostent *host_info; ACE_utsname host_data; if (ACE_OS::uname (&host_data) < 0) return -1;#if defined (ACE_LACKS_UTSNAME_T) if ((host_info = ACE_OS::gethostbyname (ACE_TEXT_ALWAYS_CHAR(host_data.nodename))) == NULL)#else if ((host_info = ACE_OS::gethostbyname (host_data.nodename)) == NULL)#endif return -1; else ACE_OS::memcpy ((char *) &this->log_msg_.host, (char *) host_info->h_addr, host_info->h_length); // This starts out initialized to all zeros! server_ = ACE_INET_Addr (port, mcast_addr); if (logger_.subscribe (server_) == -1) perror("can't subscribe to multicast group"), exit(1); // success. return 0;}// Send the message to a logger object.// This wrapper fills in all the log_record info for you.// uses iovector stuff to make contiguous header and message.intLog_Wrapper::log_message (Log_Priority type, char *message){ sequence_number_++; this->log_msg_.type = type; this->log_msg_.time = time (0); this->log_msg_.msg_length = ACE_OS::strlen(message)+1; this->log_msg_.sequence_number = htonl(sequence_number_); iovec iovp[2]; iovp[0].iov_base = reinterpret_cast<char*> (&log_msg_); iovp[0].iov_len = sizeof (log_msg_); iovp[1].iov_base = message; iovp[1].iov_len = log_msg_.msg_length; logger_.send (iovp, 2); // success. return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?