Acceptor.h
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* Acceptor */
  2. /* Copyright (c) 1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01c,18aug99,aim  SockAcceptor API changes
  7. 01b,05jun99,aim  removed unnecessary headers
  8. 01a,12may99,aim  created
  9. */
  10. #ifndef __INCAcceptor_h
  11. #define __INCAcceptor_h
  12. #include "ReactorTypes.h"
  13. #include "EventHandler.h"
  14. class Reactor;
  15. template <class SVC_HANDLER, PEER_ACCEPTOR_1>
  16. class Acceptor : public EventHandler
  17.     {
  18.   public:
  19.     virtual ~Acceptor ();
  20.     Acceptor (Reactor*);
  21.     // XXX Acceptor (Reactor* = Reactor::instance ());
  22.     // "Do-nothing" constructor.
  23.     Acceptor (const PEER_ACCEPTOR_ADDR& addr,
  24.       Reactor* reactor,
  25.       // XXX Reactor* = Reactor::instance (),
  26.       int reuseAddr = 1);
  27.     int open (const PEER_ACCEPTOR_ADDR& addr,
  28.       // XXX Reactor* = Reactor::instance (),
  29.       Reactor* reactor,
  30.       int reuseAddr = 1);
  31.     virtual operator PEER_ACCEPTOR& () const;
  32.     // Return the underlying PEER_ACCEPTOR object.
  33.     virtual PEER_ACCEPTOR& acceptor () const;
  34.     // Return the underlying PEER_ACCEPTOR object.
  35.     virtual REACTOR_HANDLE handleGet () const;
  36.     // Returns the listening acceptor's <REACTOR_HANDLE>.
  37.     virtual int close ();
  38.     // Close down the Acceptor
  39.     // Demultiplexing hooks.
  40.     virtual int handleClose (REACTOR_HANDLE = INVALID_REACTOR_HANDLE,
  41.      REACTOR_EVENT_MASK =
  42.      EventHandler::ALL_EVENTS_MASK);
  43.     // Perform termination activities when <this> is removed from the
  44.     // <reactor>.
  45.     virtual int handleInput (REACTOR_HANDLE);
  46.     // Accepts all pending connections from clients, and creates and
  47.     // activates SVC_HANDLER.
  48.     virtual int hostAddrGet (PEER_ACCEPTOR_ADDR&);
  49.   protected:
  50.     Acceptor ();
  51.     // bridging methods
  52.     virtual int newSvcHandler (SVC_HANDLER *&);
  53.     virtual int acceptSvcHandler (SVC_HANDLER *);
  54.   private:
  55.     PEER_ACCEPTOR m_acceptor;
  56.     };
  57. #include "Acceptor.tcc"
  58. #endif // __INCAcceptor_h