diff options
Diffstat (limited to 'ace/Pipe.cpp')
-rw-r--r-- | ace/Pipe.cpp | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/ace/Pipe.cpp b/ace/Pipe.cpp deleted file mode 100644 index 7f5c234e224..00000000000 --- a/ace/Pipe.cpp +++ /dev/null @@ -1,143 +0,0 @@ -// Pipe.cpp -// $Id$ - -#define ACE_BUILD_DLL -#include "ace/SOCK_Acceptor.h" -#include "ace/SOCK_Connector.h" -#include "ace/Pipe.h" - -void -ACE_Pipe::dump (void) const -{ - ACE_TRACE ("ACE_Pipe::dump"); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, "handles_[0] = %d", this->handles_[0])); - ACE_DEBUG ((LM_DEBUG, "\nhandles_[1] = %d", this->handles_[1])); - ACE_DEBUG ((LM_DEBUG, "\n")); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -int -ACE_Pipe::open (void) -{ - ACE_TRACE ("ACE_Pipe::open"); -#if defined (ACE_WIN32) || defined (ACE_LACKS_SOCKETPAIR) - ACE_INET_Addr my_addr; - ACE_SOCK_Acceptor acceptor; - ACE_SOCK_Connector connector; - ACE_SOCK_Stream reader; - ACE_SOCK_Stream writer; - int result = 0; - - // Bind listener to any port and then find out what the port was. - if (acceptor.open (ACE_Addr::sap_any) == -1 - || acceptor.get_local_addr (my_addr) == -1) - result = -1; - else - { - ACE_INET_Addr sv_addr (my_addr.get_port_number (), "localhost"); - - // Establish a connection within the same process. - if (connector.connect (writer, sv_addr) == -1) - result = -1; - else if (acceptor.accept (reader) == -1) - { - writer.close (); - result = -1; - } - } - -#if !defined (VXWORKS) - int one = 1; - // Make sure that the TCP stack doesn't try to buffer small writes. - // Since this communication is purely local to the host it doesn't - // affect network performance. - if (writer.set_option (IPPROTO_TCP, TCP_NODELAY, - &one, sizeof one) == -1) - return -1; -#endif /* !VXWORKS */ - - // Close down the acceptor endpoint since we don't need it anymore. - acceptor.close (); - if (result == -1) - return -1; - - this->handles_[0] = reader.get_handle (); - this->handles_[1] = writer.get_handle (); - -#elif defined (ACE_HAS_STREAM_PIPES) - if (ACE_OS::pipe (this->handles_) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "pipe"), -1); - - int arg = RMSGN; - - // Enable "msg no discard" mode, which ensures that record - // boundaries are maintained when messages are sent and received. - if (ACE_OS::ioctl (this->handles_[0], I_SRDOPT, (void *) arg) == -1 - || ACE_OS::ioctl (this->handles_[1], I_SRDOPT, (void *) arg) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ioctl"), -1); -#else - if (ACE_OS::socketpair (AF_UNIX, SOCK_DGRAM, 0, this->handles_) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "socketpair"), -1); -#endif /* ACE_WIN32 */ - // Point both the read and write HANDLES to the appropriate socket - // HANDLEs. - - return 0; -} - -int -ACE_Pipe::open (ACE_HANDLE handles[2]) -{ - ACE_TRACE ("ACE_Pipe::open"); - - if (this->open () == -1) - return -1; - else - { - handles[0] = this->handles_[0]; - handles[1] = this->handles_[1]; - return 0; - } -} - -// Do nothing... - -ACE_Pipe::ACE_Pipe (void) -{ - ACE_TRACE ("ACE_Pipe::ACE_Pipe"); - - this->handles_[0] = ACE_INVALID_HANDLE; - this->handles_[1] = ACE_INVALID_HANDLE; -} - -ACE_Pipe::ACE_Pipe (ACE_HANDLE handles[2]) -{ - ACE_TRACE ("ACE_Pipe::ACE_Pipe"); - - if (this->open (handles) == -1) - ACE_ERROR ((LM_ERROR, "ACE_Pipe::ACE_Pipe")); -} - -ACE_Pipe::ACE_Pipe (ACE_HANDLE read, - ACE_HANDLE write) -{ - ACE_TRACE ("ACE_Pipe::ACE_Pipe"); - this->handles_[0] = read; - this->handles_[1] = write; -} - -int -ACE_Pipe::close (void) -{ - ACE_TRACE ("ACE_Pipe::close"); - - // Note that the following will work even if we aren't closing down - // sockets because ACE_OS::closesocket() will just call ::close() in - // that case! - if (ACE_OS::closesocket (this->handles_[0]) == -1 - || ACE_OS::closesocket (this->handles_[1]) == -1) - return -1; - else - return 0; -} |