NAME

ACE_Acceptor - Abstract factory for creating a service handler (SVC_HANDLER), accepting into the SVC_HANDLER, and activating the SVC_HANDLER.

SYNOPSIS

#include <ace/Acceptor.h>

template<class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> class ACE_Acceptor : public ACE_Service_Object { public: ACE_Acceptor (ACE_Reactor * = 0, int use_select = 1); ACE_Acceptor ( const ACE_PEER_ACCEPTOR_ADDR &local_addr, ACE_Reactor * = ACE_Reactor::instance (), int flags = 0, int use_select = 1, int reuse_addr = 1 ); int open ( const ACE_PEER_ACCEPTOR_ADDR &, ACE_Reactor * = ACE_Reactor::instance (), int flags = 0, int use_select = 1, int reuse_addr = 1 ); virtual ~ACE_Acceptor (void); virtual operator ACE_PEER_ACCEPTOR &() const; virtual ACE_PEER_ACCEPTOR &acceptor (void) const; virtual ACE_HANDLE get_handle (void) const; virtual int close (void); void dump (void) const; ACE_ALLOC_HOOK_DECLARE; protected: virtual int make_svc_handler (SVC_HANDLER *&sh); virtual int accept_svc_handler (SVC_HANDLER *svc_handler); virtual int activate_svc_handler (SVC_HANDLER *svc_handler); virtual int handle_close ( ACE_HANDLE = ACE_INVALID_HANDLE, ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK ); virtual int handle_input (ACE_HANDLE); virtual int init (int argc, ASYS_TCHAR *argv[]); virtual int fini (void); virtual int info (ASYS_TCHAR **buf, size_t) const; virtual int suspend (void); virtual int resume (void); ACE_PEER_ACCEPTOR peer_acceptor_; int flags_; int use_select_; };

DESCRIPTION

Implements the basic strategy for passively establishing connections with clients. An ACE_Acceptor is parameterized by concrete types that conform to the interfaces of PEER_ACCEPTOR and SVC_HANDLER. The PEER_ACCEPTOR is instantiated with a transport mechanism that passively establishes connections. The SVC_HANDLER is instantiated with a concrete type that performs the application-specific service. An ACE_Acceptor inherits from ACE_Service_Object, which in turn inherits from ACE_Event_Handler. This enables the ACE_Reactor to dispatch the ACE_Acceptor's handle_input method when connection events occur. The handle_input method performs the ACE_Acceptor's default creation, connection establishment, and service activation strategies. These strategies can be overridden by subclasses individually or as a group.

Initialization and termination methods.

ACE_Acceptor (ACE_Reactor * = 0, int use_select = 1);

ACE_Acceptor (
    const ACE_PEER_ACCEPTOR_ADDR &local_addr,
    ACE_Reactor * = ACE_Reactor::instance (),
    int flags = 0,
    int use_select = 1,
    int reuse_addr = 1
    );

int open (
    const ACE_PEER_ACCEPTOR_ADDR &,
    ACE_Reactor * = ACE_Reactor::instance (),
    int flags = 0,
    int use_select = 1,
    int reuse_addr = 1
    );

virtual ~ACE_Acceptor (void);

virtual operator ACE_PEER_ACCEPTOR &() const;

virtual ACE_PEER_ACCEPTOR &acceptor (void) const;

virtual ACE_HANDLE get_handle (void) const;

virtual int close (void);

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

The following three methods define the Acceptor's strategies

for creating, accepting, and activating SVC_HANDLER's, respectively.
virtual int make_svc_handler (SVC_HANDLER *&sh);

virtual int accept_svc_handler (SVC_HANDLER *svc_handler);

virtual int activate_svc_handler (SVC_HANDLER *svc_handler);

Demultiplexing hooks.

virtual int handle_close (
    ACE_HANDLE = ACE_INVALID_HANDLE,
    ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK
    );

virtual int handle_input (ACE_HANDLE);

Dynamic linking hooks.

virtual int init (int argc, ASYS_TCHAR *argv[]);

virtual int fini (void);

virtual int info (ASYS_TCHAR **buf, size_t) const;

Service management hooks.

virtual int suspend (void);

virtual int resume (void);

AUTHOR

Doug Schmidt

LIBRARY

ace