NAME
ACE_ATM_Connector - Defines an active connection factory for the ACE_ATM C++ wrappers.
SYNOPSIS
#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_INT32 leaf_id,
ACE_Time_Value *timeout = 0
);
int reset_new_handle (ACE_HANDLE handle);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
private:
ATM_Connector connector_;
};
Initialization methods.
ACE_ATM_Connector (void);
Default constructor.
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
);
Actively connect and produce a 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
);
Actively connect and produce a 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
);
Try to complete a non-blocking connection. If connection completion is successful then 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
);
Actively add a leaf to the currently connected stream (i.e., multicast). The remote_sap is the address of the leaf that we are trying to add. 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.
int reset_new_handle (ACE_HANDLE handle);
Resets any event associations on this handle
void dump (void) const;
Dump the state of an object.
ACE_ALLOC_HOOK_DECLARE;
Declare the dynamic allocation hooks.
AUTHOR
Joe Hoffert
LIBRARY
ace