Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes

ACE_SPIPE Class Reference

Defines the member functions for the base class of the ACE_SPIPE abstraction. More...

#include <SPIPE.h>

Inheritance diagram for ACE_SPIPE:
Inheritance graph
[legend]
Collaboration diagram for ACE_SPIPE:
Collaboration graph
[legend]

List of all members.

Public Member Functions

int close (void)
 Close down the SPIPE without removing the rendezvous point.
int remove (void)
int get_local_addr (ACE_SPIPE_Addr &) const
 Return the local address of this endpoint.
int disable (int signum) const
void dump (void) const
 Dump the state of an object.

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.

Protected Member Functions

 ACE_SPIPE (void)
 Ensure that this class is an abstract base class.

Protected Attributes

ACE_SPIPE_Addr local_addr_
 Our local address.

Detailed Description

Defines the member functions for the base class of the ACE_SPIPE abstraction.

ACE_SPIPE was designed as a wrapper facade for STREAM pipes. On Windows, however, ACE_SPIPE is a wrapper for Named Pipes. Therefore, on Windows, it is better to use the ACE_Proactor or blocking operations in lieu of using the ACE_Reactor.

See also:
ACE_SPIPE_Acceptor for additional notes on use with ACE_Reactor on Windows.
Warning:
Windows: Works only on Windows NT 4 and higher.
Works on non-Windows platforms only when ACE_HAS_STREAM_PIPES is defined.

Definition at line 46 of file SPIPE.h.


Constructor & Destructor Documentation

ACE_SPIPE::ACE_SPIPE ( void   )  [protected]

Ensure that this class is an abstract base class.

Definition at line 19 of file SPIPE.cpp.

{
  // ACE_TRACE ("ACE_SPIPE::ACE_SPIPE");
}


Member Function Documentation

int ACE_SPIPE::close ( void   ) 

Close down the SPIPE without removing the rendezvous point.

Closes the underlying pipe handle and sets this object's handle value to ACE_INVALID_HANDLE.

Returns:
0 for success; -1 for failure. If a failure occurs, further error information is available from ACE_OS::last_error().

Reimplemented in ACE_SPIPE_Acceptor.

Definition at line 45 of file SPIPE.cpp.

{
  ACE_TRACE ("ACE_SPIPE::close");
  int result = 0;

  if (this->get_handle () != ACE_INVALID_HANDLE)
    {
      result = ACE_OS::close (this->get_handle ());
#if defined (ACE_HAS_STREAM_PIPES)
      result = (ACE_OS::close (duplex_pipe_handle_) || result);
#endif /* ACE_HAS_STREAM_PIPES */
      this->set_handle (ACE_INVALID_HANDLE);
    }
  return result;
}

int ACE_SPIPE::disable ( int  signum  )  const

Disable signal

  • signum.
    Note:
    This reimplements the inherited method from ACE_IPC_SAP. Since the signal actions do not make any sense on Windows, this method intercepts the call and NOPs it. On non-Windows, it is passed through to ACE_IPC_SAP::disable().

Reimplemented from ACE_IPC_SAP.

Definition at line 8 of file SPIPE.inl.

{
#if defined (ACE_WIN32)
  ACE_UNUSED_ARG (signum) ;
  return 0 ;
#else  /* ACE_WIN32 */
  return ACE_IPC_SAP::disable (signum) ;
#endif /* ACE_WIN32 */
}

void ACE_SPIPE::dump ( void   )  const

Dump the state of an object.

Reimplemented from ACE_IPC_SAP.

Reimplemented in ACE_SPIPE_Acceptor, and ACE_SPIPE_Stream.

Definition at line 25 of file SPIPE.cpp.

{
#if defined (ACE_HAS_DUMP)
  ACE_TRACE ("ACE_SPIPE::dump");
#endif /* ACE_HAS_DUMP */
}

int ACE_SPIPE::get_local_addr ( ACE_SPIPE_Addr local_sap  )  const

Return the local address of this endpoint.

Returns the local address of the SPIPE's endpoint in

  • addr.
    Returns:
    0 for success; -1 for failure. If a failure occurs, further error information is available from ACE_OS::last_error().

Definition at line 35 of file SPIPE.cpp.

{
  ACE_TRACE ("ACE_SPIPE::get_local_addr");
  local_sap = this->local_addr_;
  return 0;
}

int ACE_SPIPE::remove ( void   ) 

Close down the SPIPE and remove the rendezvous point from the file system.

Returns:
0 for success; -1 for failure. If a failure occurs, further error information is available from ACE_OS::last_error().

Reimplemented in ACE_SPIPE_Acceptor.

Definition at line 65 of file SPIPE.cpp.

{
  ACE_TRACE ("ACE_SPIPE::remove");
  int result = this->close ();
  return ACE_OS::unlink (this->local_addr_.get_path_name ()) == -1 || result == -1 ? -1 : 0;
}


Member Data Documentation

Declare the dynamic allocation hooks.

Reimplemented from ACE_IPC_SAP.

Reimplemented in ACE_SPIPE_Acceptor, and ACE_SPIPE_Stream.

Definition at line 92 of file SPIPE.h.

Our local address.

Definition at line 106 of file SPIPE.h.


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