Public Types | Public Member Functions | Public Attributes

ACE_DEV_Connector Class Reference

Defines an active connection factory for the ACE_DEV wrappers. More...

#include <DEV_Connector.h>

List of all members.

Public Types

typedef ACE_DEV_Addr PEER_ADDR
typedef ACE_DEV_IO PEER_STREAM

Public Member Functions

 ACE_DEV_Connector (void)
 Default constructor.
 ACE_DEV_Connector (ACE_DEV_IO &new_io, const ACE_DEV_Addr &remote_sap, ACE_Time_Value *timeout=0, const ACE_Addr &local_sap=ACE_Addr::sap_any, int reuse_addr=0, int flags=O_RDWR, int perms=0)
int connect (ACE_DEV_IO &new_io, const ACE_DEV_Addr &remote_sap, ACE_Time_Value *timeout=0, const ACE_Addr &local_sap=ACE_Addr::sap_any, int reuse_addr=0, int flags=O_RDWR, int perms=0)
bool reset_new_handle (ACE_HANDLE handle)
 Resets any event associations on this handle.
void dump (void) const
 Dump the state of an object.

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.

Detailed Description

Defines an active connection factory for the ACE_DEV wrappers.

Definition at line 33 of file DEV_Connector.h.


Member Typedef Documentation

Definition at line 99 of file DEV_Connector.h.

Definition at line 100 of file DEV_Connector.h.


Constructor & Destructor Documentation

ACE_DEV_Connector::ACE_DEV_Connector ( void   ) 

Default constructor.

Definition at line 29 of file DEV_Connector.cpp.

{
  ACE_TRACE ("ACE_DEV_Connector::ACE_DEV_Connector");
}

ACE_DEV_Connector::ACE_DEV_Connector ( ACE_DEV_IO new_io,
const ACE_DEV_Addr remote_sap,
ACE_Time_Value timeout = 0,
const ACE_Addr local_sap = ACE_Addr::sap_any,
int  reuse_addr = 0,
int  flags = O_RDWR,
int  perms = 0 
) [inline]

Actively connect and produce a new_io if things go well. The remote_sap is the address that we are trying to connect with. 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 maximum 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_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. The flags and perms arguments are passed down to the <open> method.

Definition at line 10 of file DEV_Connector.inl.

{
  ACE_TRACE ("ACE_DEV_Connector::ACE_DEV_Connector");
  if (this->connect (new_io, remote_sap, timeout, local_sap,
                     reuse_addr, flags, perms) == ACE_IO_SAP::INVALID_HANDLE
      && timeout != 0 && !(errno == EWOULDBLOCK || errno == ETIME))
    ACE_ERROR ((LM_ERROR, ACE_TEXT ("address %s, %p\n"),
                    remote_sap.get_path_name (), ACE_TEXT ("ACE_DEV_IO")));
}


Member Function Documentation

int ACE_DEV_Connector::connect ( ACE_DEV_IO new_io,
const ACE_DEV_Addr remote_sap,
ACE_Time_Value timeout = 0,
const ACE_Addr local_sap = ACE_Addr::sap_any,
int  reuse_addr = 0,
int  flags = O_RDWR,
int  perms = 0 
)

Actively connect and produce a new_io if things go well. The remote_sap is the address that we are trying to connect with. 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 maximum 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_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. The flags and perms arguments are passed down to the <open> method.

Definition at line 35 of file DEV_Connector.cpp.

{
  ACE_TRACE ("ACE_DEV_Connector::connect");

  ACE_HANDLE handle = ACE::handle_timed_open (timeout,
                                              remote_sap.get_path_name (),
                                              flags, perms);
  new_io.set_handle (handle);
  new_io.addr_ = remote_sap; // class copy.
  return handle == ACE_INVALID_HANDLE ? -1 : 0;
}

void ACE_DEV_Connector::dump ( void   )  const

Dump the state of an object.

bool ACE_DEV_Connector::reset_new_handle ( ACE_HANDLE  handle  )  [inline]

Resets any event associations on this handle.

Definition at line 27 of file DEV_Connector.inl.

{
  // Nothing to do here since the handle is not a socket
  return false;
}


Member Data Documentation

Declare the dynamic allocation hooks.

Definition at line 96 of file DEV_Connector.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines