#include <LSOCK_Acceptor.h>
Inheritance diagram for ACE_LSOCK_Acceptor:
Public Types | |
typedef ACE_UNIX_Addr | PEER_ADDR |
typedef ACE_LSOCK_Stream | PEER_STREAM |
Public Member Functions | |
ACE_LSOCK_Acceptor (void) | |
Default constructor. | |
ACE_LSOCK_Acceptor (const ACE_Addr &local_sap, int reuse_addr=0, int protocol_family=PF_UNIX, int backlog=ACE_DEFAULT_BACKLOG, int protocol=0) | |
Initiate a passive mode socket. | |
int | open (const ACE_Addr &local_sap, int reuse_addr=0, int protocol_family=PF_UNIX, int backlog=ACE_DEFAULT_BACKLOG, int protocol=0) |
Initiate a passive mode socket. | |
int | accept (ACE_LSOCK_Stream &new_ipc_sap, ACE_Addr *=0, ACE_Time_Value *timeout=0, int restart=1, int reset_new_handle=0) const |
Accept a new data transfer connection. | |
int | remove (void) |
int | get_local_addr (ACE_Addr &) const |
Return the local endpoint address. | |
void | dump (void) const |
Dump the state of an object. | |
Public Attributes | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. | |
Private Attributes | |
ACE_UNIX_Addr | local_addr_ |
Address of our rendezvous point. |
Definition at line 41 of file LSOCK_Acceptor.h.
|
Reimplemented from ACE_SOCK_Acceptor. Definition at line 77 of file LSOCK_Acceptor.h. |
|
Reimplemented from ACE_SOCK_Acceptor. Definition at line 78 of file LSOCK_Acceptor.h. |
|
Default constructor.
Definition at line 45 of file LSOCK_Acceptor.cpp. References ACE_TRACE.
00046 { 00047 ACE_TRACE ("ACE_LSOCK_Acceptor::ACE_LSOCK_Acceptor"); 00048 } |
|
Initiate a passive mode socket.
Definition at line 65 of file LSOCK_Acceptor.cpp. References ACE_ERROR, ACE_TRACE, LM_ERROR, and open().
|
|
Accept a new data transfer connection.
Definition at line 84 of file LSOCK_Acceptor.cpp. References ACE_TRACE, ACE_Addr::get_addr(), ACE_LSOCK_Stream::get_handle(), ACE_Addr::get_size(), ACE_LSOCK_Stream::set_handle(), ACE_Addr::set_size(), ACE_SOCK_Acceptor::shared_accept_finish(), and ACE_SOCK_Acceptor::shared_accept_start().
00089 { 00090 ACE_TRACE ("ACE_LSOCK_Acceptor::accept"); 00091 00092 int in_blocking_mode = 0; 00093 if (this->shared_accept_start (timeout, 00094 restart, 00095 in_blocking_mode) == -1) 00096 return -1; 00097 else 00098 { 00099 sockaddr *addr = 0; 00100 int len = 0; 00101 00102 if (remote_addr != 0) 00103 { 00104 len = remote_addr->get_size (); 00105 addr = (sockaddr *) remote_addr->get_addr (); 00106 } 00107 00108 do 00109 new_stream.set_handle (ACE_OS::accept (this->get_handle (), 00110 addr, 00111 &len)); 00112 while (new_stream.get_handle () == ACE_INVALID_HANDLE 00113 && restart != 0 00114 && errno == EINTR 00115 && timeout == 0); 00116 00117 // Reset the size of the addr, which is only necessary for UNIX 00118 // domain sockets. 00119 if (new_stream.get_handle () != ACE_INVALID_HANDLE 00120 && remote_addr != 0) 00121 remote_addr->set_size (len); 00122 } 00123 00124 return this->shared_accept_finish (new_stream, 00125 in_blocking_mode, 00126 reset_new_handle); 00127 } |
|
Dump the state of an object.
Reimplemented from ACE_SOCK_Acceptor. Definition at line 32 of file LSOCK_Acceptor.cpp. References ACE_BEGIN_DUMP, ACE_DEBUG, ACE_END_DUMP, ACE_TRACE, ACE_UNIX_Addr::dump(), LM_DEBUG, and local_addr_.
00033 { 00034 #if defined (ACE_HAS_DUMP) 00035 ACE_TRACE ("ACE_LSOCK_Acceptor::dump"); 00036 00037 ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); 00038 this->local_addr_.dump (); 00039 ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); 00040 #endif /* ACE_HAS_DUMP */ 00041 } |
|
Return the local endpoint address.
Reimplemented from ACE_SOCK. Definition at line 20 of file LSOCK_Acceptor.cpp. References ACE_TRACE, and local_addr_.
00021 { 00022 ACE_TRACE ("ACE_LSOCK_Acceptor::get_local_addr"); 00023 00024 ACE_UNIX_Addr& target = dynamic_cast<ACE_UNIX_Addr &> (a); 00025 00026 target = this->local_addr_; 00027 00028 return 0; 00029 } |
|
Initiate a passive mode socket.
Reimplemented from ACE_SOCK_Acceptor. Definition at line 51 of file LSOCK_Acceptor.cpp. References ACE_TRACE, local_addr_, and ACE_SOCK_Acceptor::open(). Referenced by ACE_LSOCK_Acceptor().
00056 { 00057 ACE_TRACE ("ACE_LSOCK_Acceptor::open"); 00058 this->local_addr_ = *((ACE_UNIX_Addr *) &remote_sap); // This is a gross hack... 00059 return ACE_SOCK_Acceptor::open (remote_sap, reuse_addr, 00060 protocol_family, backlog, protocol); 00061 } |
|
Close down the ACE_LSOCK and remove the rendezvous point from the file system. Definition at line 133 of file LSOCK_Acceptor.cpp. References ACE_TRACE, ACE_SOCK_Acceptor::close(), and ACE_OS::unlink().
00134 { 00135 ACE_TRACE ("ACE_LSOCK_Acceptor::remove"); 00136 int result = this->close (); 00137 return ACE_OS::unlink (this->local_addr_.get_path_name ()) == -1 00138 || result == -1 ? -1 : 0; 00139 } |
|
Declare the dynamic allocation hooks.
Reimplemented from ACE_SOCK_Acceptor. Definition at line 84 of file LSOCK_Acceptor.h. |
|
Address of our rendezvous point.
Definition at line 88 of file LSOCK_Acceptor.h. Referenced by dump(), get_local_addr(), and open(). |