⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 io_acceptor.h

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 H
字号:
/* -*- c++ -*- */// IO_Acceptor.h,v 1.2 2005/12/02 08:45:34 isisbuilds Exp#ifndef JAWS_IO_ACCEPTOR_H#define JAWS_IO_ACCEPTOR_H// Use the Adapter pattern to encapsulate either a LOCK_SOCK_Acceptor or// an ACE_Asynch_Acceptor#include "ace/Asynch_Acceptor.h"#if !defined (ACE_LACKS_PRAGMA_ONCE)# pragma once#endif /* ACE_LACKS_PRAGMA_ONCE */#include "ace/LOCK_SOCK_Acceptor.h"#include "ace/Singleton.h"#include "JAWS/Export.h"#include "JAWS/IO.h"#include "JAWS/IO_Handler.h"// Forward declaration.ACE_BEGIN_VERSIONED_NAMESPACE_DECLclass ACE_Proactor;class ACE_Reactor;ACE_END_VERSIONED_NAMESPACE_DECL#if defined (JAWS_HAS_THREAD_SAFE_ACCEPT)typedef ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_NULL_MUTEX> JAWS_IO_SOCK_Acceptor;#elsetypedef ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX> JAWS_IO_SOCK_Acceptor;#endif /* JAWS_HAS_THREAD_SAFE_ACCEPT */class JAWS_Export JAWS_IO_Acceptor{public:  JAWS_IO_Acceptor (void);  virtual ~JAWS_IO_Acceptor (void);  virtual int open (const ACE_INET_Addr &address, int backlog = 20);  // Initiate a passive mode socket.  virtual int open (const ACE_HANDLE &socket);  // Initiate a passive mode socket.  virtual int accept (ACE_SOCK_Stream &new_stream,                      ACE_Addr *remote_addr = 0,                      ACE_Time_Value *timeout = 0,                      int restart = 1,                      int reset_new_handle = 0) const;  // Synchronously accept the connection  virtual int accept (size_t bytes_to_read = 0, const void *act = 0);  // This initiates a new asynchronous accept through the AcceptEx call.  virtual ACE_HANDLE get_handle (void);  // Get the listener's handle  virtual void close (void);  // Close the acceptor.  enum { ASYNC = 0, SYNCH = 1 };  // identify if this is being used for asynchronous or synchronous  // accept calls};class JAWS_Export JAWS_IO_Synch_Acceptor : public JAWS_IO_Acceptor{public:  virtual int open (const ACE_INET_Addr &local_sap, int backlog = 20);  // Initiate a passive mode socket.  virtual int open (const ACE_HANDLE &socket);  // Initiate a passive mode socket.  virtual int accept (ACE_SOCK_Stream &new_stream,                      ACE_Addr *remote_addr = 0,                      ACE_Time_Value *timeout = 0,                      int restart = 1,                      int reset_new_handle = 0) const;  // Accept the connection  virtual ACE_HANDLE get_handle (void);  // Get the listener's handleprivate:  virtual int accept (size_t bytes_to_read = 0, const void *act = 0);private:  JAWS_IO_SOCK_Acceptor acceptor_;};class JAWS_Export JAWS_IO_Asynch_Acceptor : public JAWS_IO_Acceptor{public:  JAWS_IO_Asynch_Acceptor (void);  virtual ~JAWS_IO_Asynch_Acceptor (void);  virtual int open (const ACE_INET_Addr &address, int backlog = 20);  // Initiate an asynchronous passive connection  virtual int open (const ACE_HANDLE &socket);  // Initiate an asynchronous passive connection  virtual int accept (size_t bytes_to_read = 0, const void *act = 0);  // This initiates a new asynchronous accept through the AcceptEx call.  virtual ACE_HANDLE get_handle (void);  // Get the listener's handle  virtual void close (void);private:  virtual int accept (ACE_SOCK_Stream &new_stream,                      ACE_Addr *remote_addr = 0,                      ACE_Time_Value *timeout = 0,                      int restart = 1,                      int reset_new_handle = 0) const;private:#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)  ACE_Asynch_Acceptor<JAWS_Asynch_Handler> &acceptor_;  ACE_Asynch_Acceptor<JAWS_Asynch_Handler> *acceptor_ptr_;  ACE_HANDLE handle_;#endif /* defined (ACE_WIN32) */};typedef ACE_Singleton<JAWS_IO_Synch_Acceptor, ACE_SYNCH_MUTEX>        JAWS_IO_Synch_Acceptor_Singleton;typedef ACE_Singleton<JAWS_IO_Asynch_Acceptor, ACE_SYNCH_MUTEX>        JAWS_IO_Asynch_Acceptor_Singleton;#endif /* !defined (JAWS_IO_ACCEPTOR_H) */

⌨️ 快捷键说明

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