NAME

ACE_MEM_Acceptor - Defines the format and interface for the acceptor side of the local mmap stream.

SYNOPSIS

#include <ace/MEM_Aceeptor.h>

class ACE_MEM_Acceptor : public ACE_SOCK_Acceptor { public: ACE_MEM_Acceptor (void); ~ACE_MEM_Acceptor (void); ACE_MEM_Acceptor ( const ACE_MEM_Addr &remote_sap, int reuse_addr = 0, int backlog = ACE_DEFAULT_BACKLOG, int protocol = 0 ); int open ( const ACE_MEM_Addr &local_sap, int reuse_addr = 0, int backlog = ACE_DEFAULT_BACKLOG, int protocol = 0 ); int accept ( ACE_MEM_Stream &new_ipc_sap, ACE_MEM_Addr *remote_addr = 0, ACE_Time_Value *timeout = 0, int restart = 1, int reset_new_handle = 0 ); int shared_accept_finish ( ACE_MEM_Stream new_stream, int in_blocking_mode, int reset_new_handle ) const; const ASYS_TCHAR *mmap_prefix (void) const; void mmap_prefix (ASYS_TCHAR *prefix); int get_local_addr (ACE_MEM_Addr &) const; ACE_MEM_SAP::MALLOC_OPTIONS& malloc_options (void); typedef ACE_MEM_Addr PEER_ADDR; typedef ACE_MEM_Stream PEER_STREAM; void dump (void) const; ACE_ALLOC_HOOK_DECLARE; protected: int open ( const ACE_Addr &local_sap, int reuse_addr = 0, int protocol_family = PF_INET, int backlog = ACE_DEFAULT_BACKLOG, int protocol = 0 ); int open ( const ACE_Addr &local_sap, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr, int protocol_family, int backlog = ACE_DEFAULT_BACKLOG, int protocol = 0 ); 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; int accept ( ACE_SOCK_Stream &new_stream, ACE_Accept_QoS_Params qos_params, ACE_Addr *remote_addr = 0, ACE_Time_Value *timeout = 0, int restart = 1, int reset_new_handle = 0 ) const; private: ASYS_TCHAR *mmap_prefix_; ACE_MEM_SAP::MALLOC_OPTIONS malloc_options_; };

DESCRIPTION

This class should be modified to prevent user passing a non-localhost endpoint as the acceptor listen point because it doesn't make any sense at all to make the listening endpoint visible (or connectable) anywhere outside of this machine. However, the type of endpoint is left as ACE_Addr so we can later changed to use UNIX sockets with mmap stream if so desired. (Currently, using UNIX socket with this class will not work.)

Initialization methods.

ACE_MEM_Acceptor (void);

~ACE_MEM_Acceptor (void);

ACE_MEM_Acceptor (
    const ACE_MEM_Addr &remote_sap,
    int reuse_addr = 0,
    int backlog = ACE_DEFAULT_BACKLOG,
    int protocol = 0
    );

int open (
    const ACE_MEM_Addr &local_sap,
    int reuse_addr = 0,
    int backlog = ACE_DEFAULT_BACKLOG,
    int protocol = 0
    );

int accept (
    ACE_MEM_Stream &new_ipc_sap,
    ACE_MEM_Addr *remote_addr = 0,
    ACE_Time_Value *timeout = 0,
    int restart = 1,
    int reset_new_handle = 0
    );

int shared_accept_finish (
    ACE_MEM_Stream new_stream,
    int in_blocking_mode,
    int reset_new_handle
    ) const;

const ASYS_TCHAR *mmap_prefix (void) const;

void mmap_prefix (ASYS_TCHAR *prefix);

int get_local_addr (ACE_MEM_Addr &) const;

ACE_MEM_SAP::MALLOC_OPTIONS& malloc_options (void);

Meta-type info

typedef ACE_MEM_Addr PEER_ADDR;

typedef ACE_MEM_Stream PEER_STREAM;

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

The following methods should not be accessable externally

because MEM_Acceptor do not support their semantics.
int open (
    const ACE_Addr &local_sap,
    int reuse_addr = 0,
    int protocol_family = PF_INET,
    int backlog = ACE_DEFAULT_BACKLOG,
    int protocol = 0
    );

int open (
    const ACE_Addr &local_sap,
    ACE_Protocol_Info *protocolinfo,
    ACE_SOCK_GROUP g,
    u_long flags,
    int reuse_addr,
    int protocol_family,
    int backlog = ACE_DEFAULT_BACKLOG,
    int protocol = 0
    );

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;

int accept (
    ACE_SOCK_Stream &new_stream,
    ACE_Accept_QoS_Params qos_params,
    ACE_Addr *remote_addr = 0,
    ACE_Time_Value *timeout = 0,
    int restart = 1,
    int reset_new_handle = 0
    ) const;

AUTHOR

Nanbor Wang nanbor@cs.wustl.edu

LIBRARY

ace