#include <ace/ATM_Connector.h>
class ACE_ATM_Connector {
public:
ACE_ATM_Connector (void);
ACE_ATM_Connector ( ACE_ATM_Stream &new_stream, const ACE_ATM_Addr &remote_sap, ACE_ATM_Params params = ACE_ATM_Params(), ACE_ATM_QoS options = ACE_ATM_QoS(), ACE_Time_Value *timeout = 0, const ACE_ATM_Addr &local_sap = ACE_ATM_Addr( "", 0 ), int reuse_addr = 0, int flags = 0, int flags = O_RDWR, int perms = 0 );
connect ( ACE_ATM_Stream &new_stream, const ACE_ATM_Addr &remote_sap, ACE_ATM_Params params = ACE_ATM_Params(), ACE_ATM_QoS options = ACE_ATM_QoS(), ACE_Time_Value *timeout = 0, const ACE_ATM_Addr &local_sap = ACE_ATM_Addr( "", 0 ), int reuse_addr = 0, int flags = 0, int flags = O_RDWR, int perms = 0 );
int complete ( ACE_ATM_Stream &new_stream, ACE_ATM_Addr *remote_sap, ACE_Time_Value *tv );
int add_leaf ( ACE_ATM_Stream ¤t_stream, const ACE_Addr &remote_sap, ACE_ATM_QoS &qos );
int reset_new_handle (ACE_HANDLE handle);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
private:
ATM_Connector connector_;
};
ACE_ATM_Connector (void);
ACE_ATM_Connector (
ACE_ATM_Stream &new_stream,
const ACE_ATM_Addr &remote_sap,
ACE_ATM_Params params = ACE_ATM_Params(),
ACE_ATM_QoS options = ACE_ATM_QoS(),
ACE_Time_Value *timeout = 0,
const ACE_ATM_Addr &local_sap = ACE_ATM_Addr( "",
0 ),
int reuse_addr = 0,
int flags = 0,
int flags = O_RDWR,
int perms = 0
);
new_stream
if things go well.
The remote_sap
is the address that we are trying to connect
with. The params
are the parameters needed for either socket
or XTI/ATM connections. The timeout
is the amount of time to
wait to connect. If it's 0 then we block indefinitely. If
*timeout == {0, 0} then the connection is done using non-blocking
mode. In this case, if the connection can't be made immediately
the value of -1 is returned with errno == EWOULDBLOCK
. If
*timeout {0, 0} then this is the amount of time to wait before
timing out. If the time expires before the connection is made
errno == ETIME
. The local_sap
is the value of local address
to bind to. If it's the default value of ACE_ATM_Addr::sap_any
then
the user is letting the OS do the binding. If reuse_addr
== 1
then the local_addr
is reused, even if it hasn't been cleanedup yet.
connect (
ACE_ATM_Stream &new_stream,
const ACE_ATM_Addr &remote_sap,
ACE_ATM_Params params = ACE_ATM_Params(),
ACE_ATM_QoS options = ACE_ATM_QoS(),
ACE_Time_Value *timeout = 0,
const ACE_ATM_Addr &local_sap = ACE_ATM_Addr( "",
0 ),
int reuse_addr = 0,
int flags = 0,
int flags = O_RDWR,
int perms = 0
);
new_stream
if things go well.
The remote_sap
is the address that we are trying to connect
with. The params
are the parameters needed for either socket
or XTI/ATM connections. The timeout
is the amount of time to
wait to connect. If it's 0 then we block indefinitely. If
*timeout == {0, 0} then the connection is done using non-blocking
mode. In this case, if the connection can't be made immediately
the value of -1 is returned with errno == EWOULDBLOCK
. If
*timeout {0, 0} then this is the amount of time to wait before
timing out. If the time expires before the connection is made
errno == ETIME
. The local_sap
is the value of local address
to bind to. If it's the default value of ACE_ATM_Addr::sap_any
then
the user is letting the OS do the binding. If reuse_addr
== 1
then the local_addr
is reused, even if it hasn't been cleanedup yet.
int complete (
ACE_ATM_Stream &new_stream,
ACE_ATM_Addr *remote_sap,
ACE_Time_Value *tv
);
new_stream
contains
the connected ACE_SOCK_Stream. If remote_sap
is non-NULL then it
will contain the address of the connected peer.
int add_leaf (ACE_ATM_Stream ¤t_stream, const ACE_Addr &remote_sap, ACE_INT32 leaf_id, ACE_Time_Value *timeout = 0);
int add_leaf (
ACE_ATM_Stream ¤t_stream,
const ACE_Addr &remote_sap,
ACE_ATM_QoS &qos
);
remote_sap
is the address of the leaf that we
are trying to add.
int reset_new_handle (ACE_HANDLE handle);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;