#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_;
};
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.)
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
);
local_sap
is the address that we're going to listen for
connections on. If reuse_addr
is 1 then we'll use the
SO_REUSEADDR
to reuse this address. Returns 0 on success and
-1 on failure.
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;
ACE_OS::accept
is
called.
const ASYS_TCHAR *mmap_prefix (void) const;
void mmap_prefix (ASYS_TCHAR *prefix);
mmap_prefix_
is not set and the mmap filename is
${(TMP|TEMP)}//ACE_MEM_Acceptor_(port-number)_(&stream),
otherwise, it is mmap_prefix_
_(port-number)_(&stream),
mmap_prefix_
should include _absolute_ path so the connector
within the same host can located the mmap file. Example:
/tmp/mmapfile.
int get_local_addr (ACE_MEM_Addr &) const;
ACE_Addr
.
Returns 0 if successful, else -1.
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;
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;
nanbor@cs.wustl.edu