NAME

ACE_SOCK_Connector - Defines a factory that creates new ACE_Streams actively.

SYNOPSIS

#include <ace/SOCK_Connector.h>

class ACE_SOCK_Connector { public: ACE_SOCK_Connector (void); ACE_SOCK_Connector ( ACE_SOCK_Stream &new_stream, const ACE_Addr &remote_sap, ACE_Time_Value *timeout = 0, const ACE_Addr &local_sap = ACE_Addr::sap_any, int reuse_addr = 0, int flags = 0, int perms = 0, int protocol_family = PF_INET, int protocol = 0 ); ACE_SOCK_Connector ( ACE_SOCK_Stream &new_stream, const ACE_Addr &remote_sap, ACE_QoS_Params qos_params, ACE_Time_Value *timeout = 0, const ACE_Addr &local_sap = ACE_Addr::sap_any, ACE_Protocol_Info *protocolinfo = 0, ACE_SOCK_GROUP g = 0, u_long flags = 0, int reuse_addr = 0, int perms = 0, int protocol_family = PF_INET, int protocol = 0 ); int connect ( ACE_SOCK_Stream &new_stream, const ACE_Addr &remote_sap, ACE_Time_Value *timeout = 0, const ACE_Addr &local_sap = ACE_Addr::sap_any, int reuse_addr = 0, int flags = 0, int perms = 0, int protocol_family = PF_INET, int protocol = 0 ); int connect ( ACE_SOCK_Stream &new_stream, const ACE_Addr &remote_sap, ACE_QoS_Params qos_params, ACE_Time_Value *timeout = 0, const ACE_Addr &local_sap = ACE_Addr::sap_any, ACE_Protocol_Info *protocolinfo = 0, ACE_SOCK_GROUP g = 0, u_long flags = 0, int reuse_addr = 0, int perms = 0, int protocol_family = PF_INET, int protocol = 0 ); ~ACE_SOCK_Connector (void); int complete ( ACE_SOCK_Stream &new_stream, ACE_Addr *remote_sap = 0, ACE_Time_Value *timeout = 0 ); int reset_new_handle (ACE_HANDLE handle); typedef ACE_INET_Addr PEER_ADDR; typedef ACE_SOCK_Stream PEER_STREAM; void dump (void) const; ACE_ALLOC_HOOK_DECLARE; protected: int shared_open ( ACE_SOCK_Stream &new_stream, int protocol_family, int protocol, int reuse_addr ); int shared_open ( ACE_SOCK_Stream &new_stream, int protocol_family, int protocol, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr ); int shared_connect_start ( ACE_SOCK_Stream &new_stream, ACE_Time_Value *timeout, const ACE_Addr &local_sap ); int shared_connect_finish ( ACE_SOCK_Stream &new_stream, ACE_Time_Value *timeout, int result ); };

DESCRIPTION

The ACE_SOCK_Connector doesn't have a socket of its own, i.e., it simply "borrows" the one from the ACE_SOCK_Stream that's being connected. The reason for this is that the underlying socket API doesn't use a "factory" socket to connect "data-mode" sockets. Therefore, there's no need to inherit ACE_SOCK_Connector from ACE_SOCK. A nice side-effect of this is that ACE_SOCK_Connector's do not store state so they can be used reentrantly in multi-threaded programs.

Initialization and termination methods.

ACE_SOCK_Connector (void);

ACE_SOCK_Connector (
    ACE_SOCK_Stream &new_stream,
    const ACE_Addr &remote_sap,
    ACE_Time_Value *timeout = 0,
    const ACE_Addr &local_sap = ACE_Addr::sap_any,
    int reuse_addr = 0,
    int flags = 0,
    int perms = 0,
    int protocol_family = PF_INET,
    int protocol = 0
    );

ACE_SOCK_Connector (
    ACE_SOCK_Stream &new_stream,
    const ACE_Addr &remote_sap,
    ACE_QoS_Params qos_params,
    ACE_Time_Value *timeout = 0,
    const ACE_Addr &local_sap = ACE_Addr::sap_any,
    ACE_Protocol_Info *protocolinfo = 0,
    ACE_SOCK_GROUP g = 0,
    u_long flags = 0,
    int reuse_addr = 0,
    int perms = 0,
    int protocol_family = PF_INET,
    int protocol = 0
    );

int connect (
    ACE_SOCK_Stream &new_stream,
    const ACE_Addr &remote_sap,
    ACE_Time_Value *timeout = 0,
    const ACE_Addr &local_sap = ACE_Addr::sap_any,
    int reuse_addr = 0,
    int flags = 0,
    int perms = 0,
    int protocol_family = PF_INET,
    int protocol = 0
    );

int connect (
    ACE_SOCK_Stream &new_stream,
    const ACE_Addr &remote_sap,
    ACE_QoS_Params qos_params,
    ACE_Time_Value *timeout = 0,
    const ACE_Addr &local_sap = ACE_Addr::sap_any,
    ACE_Protocol_Info *protocolinfo = 0,
    ACE_SOCK_GROUP g = 0,
    u_long flags = 0,
    int reuse_addr = 0,
    int perms = 0,
    int protocol_family = PF_INET,
    int protocol = 0
    );

~ACE_SOCK_Connector (void);

Completion routine.

int complete (
    ACE_SOCK_Stream &new_stream,
    ACE_Addr *remote_sap = 0,
    ACE_Time_Value *timeout = 0
    );

int reset_new_handle (ACE_HANDLE handle);

Meta-type info

typedef ACE_INET_Addr PEER_ADDR;

typedef ACE_SOCK_Stream PEER_STREAM;

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

AUTHOR

Doug Schmidt

LIBRARY

ace