logging_acceptor.cpp

来自「ace开发环境 用来开发网络程序 其运用了设计模式、多平台、C++等多种知识」· C++ 代码 · 共 86 行

CPP
86
字号
// $Id: Logging_Acceptor.cpp 44281 2002-04-10 05:47:14Z jwillemsen $#include "ace/WFMO_Reactor.h"#include "ace/Log_Msg.h"#include "Logging_Acceptor.h"#include "Logging_Handler.h"#include "Reactor_Singleton.h"ACE_RCSID(simple_server, Logging_Acceptor, "$Id: Logging_Acceptor.cpp 44281 2002-04-10 05:47:14Z jwillemsen $")// Initialize peer_acceptor object.intLogging_Acceptor::open (const ACE_INET_Addr &addr){  // Reuse addr if already in use.  if (this->peer_acceptor_.open (addr, 1) == -1)    return -1;  else    return 0;}// Default constructor.Logging_Acceptor::Logging_Acceptor (void){}// Performs termination activities.intLogging_Acceptor::handle_close (ACE_HANDLE, ACE_Reactor_Mask){  this->peer_acceptor_.close ();  // Note, this object MUST be allocated dynamically!  delete this;  return 0;}Logging_Acceptor::~Logging_Acceptor (void){}// Returns underlying device descriptor.ACE_HANDLELogging_Acceptor::get_handle (void) const{  return this->peer_acceptor_.get_handle ();}// Accepts connections from client and registers new object with the// ACE_Reactor.intLogging_Acceptor::handle_input (ACE_HANDLE){  Logging_Handler *svc_handler;  ACE_NEW_RETURN (svc_handler, Logging_Handler, -1);  // Accept the connection from a client client daemon.  // Try to find out if the implementation of the reactor that we are  // using requires us to reset the event association for the newly  // created handle. This is because the newly created handle will  // inherit the properties of the listen handle, including its event  // associations.  int reset_new_handle = this->reactor ()->uses_event_associations ();  if (this->peer_acceptor_.accept (svc_handler->peer (), // stream                                   0, // remote address                                   0, // timeout                                   1, // restart                                   reset_new_handle  // reset new handler                                   ) == -1      || svc_handler->open () == -1)    {      svc_handler->close ();      ACE_ERROR_RETURN ((LM_ERROR, "%p", "accept/open failed"), -1);    }  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?