NAME

ACE_Asynch_Acceptor - This class is an example of the Acceptor Pattern. This class will accept new connections and create new HANDLER to handle the new connections.

SYNOPSIS

#include <ace/Asynch_Acceptor.h>

template<class HANDLER> class ACE_Asynch_Acceptor : public ACE_Handler { public: ACE_Asynch_Acceptor (void); ~ACE_Asynch_Acceptor (void); int open ( const ACE_INET_Addr &address, size_t bytes_to_read = 0, int pass_addresses = 0, int backlog = 5, int reuse_addr = 1, ACE_Proactor *proactor = 0 ); virtual int accept (size_t bytes_to_read = 0); static size_t address_size (void); int cancel (void); protected: virtual void handle_accept ( const ACE_Asynch_Accept::Result &result ); ACE_HANDLE handle (void) const; void parse_address ( ACE_Message_Block &message_block, ACE_INET_Addr &remote_address, ACE_INET_Addr &local_address ); virtual HANDLER *make_handler (void); int bytes_to_read (void) const; private: ACE_HANDLE listen_handle_; ACE_Asynch_Accept asynch_accept_; int pass_addresses_; int bytes_to_read_; };

DESCRIPTION

Unlike the ACE_Acceptor, however, this class is designed to be used asynchronously.

PUBLIC MEMBERS

ACE_Asynch_Acceptor (void);

~ACE_Asynch_Acceptor (void);

int open (
    const ACE_INET_Addr &address,
    size_t bytes_to_read = 0,
    int pass_addresses = 0,
    int backlog = 5,
    int reuse_addr = 1,
    ACE_Proactor *proactor = 0
    );

virtual int accept (size_t bytes_to_read = 0);

static size_t address_size (void);

int cancel (void);

PROTECTED MEMBERS

virtual void handle_accept (const ACE_Asynch_Accept::Result &result);

ACE_HANDLE handle (void) const;

void parse_address (
    ACE_Message_Block &message_block,
    ACE_INET_Addr &remote_address,
    ACE_INET_Addr &local_address
    );

virtual HANDLER *make_handler (void);

int bytes_to_read (void) const;

PRIVATE MEMBERS

ACE_HANDLE listen_handle_;

ACE_Asynch_Accept asynch_accept_;

int pass_addresses_;

int bytes_to_read_;

AUTHOR

Irfan Pyarali (irfan@cs.wustl.edu)

LIBRARY

ace