#include <PosixUnnamedPipe.hpp>

Public Member Functions | |
| PosixUnnamedPipe (EOpen doOpen=E_OPEN) | |
| PosixUnnamedPipe (AutoDescriptor inputfd, AutoDescriptor outputfd) | |
| If fd_in == -1, then you cannot read from this object. | |
| virtual | ~PosixUnnamedPipe () |
| virtual int | write (const void *data, int dataLen, ErrorAction errorAsException=E_RETURN_ON_ERROR) |
| Write a specified number of bytes to the device that is exposing the IOIFC interface. | |
| virtual int | read (void *buffer, int bufferLen, ErrorAction errorAsException=E_RETURN_ON_ERROR) |
| Read a specified number of bytes from the device that is exposing the IOIFC interface. | |
| Descriptor | getInputHandle () const |
| Descriptor | getOutputHandle () const |
| virtual void | open () |
| Open the pipe. | |
| virtual int | close () |
| Close the pipe. | |
| virtual bool | isOpen () const |
| Is the pipe open or closed? | |
| virtual int | closeInputHandle () |
| virtual int | closeOutputHandle () |
| virtual void | setBlocking (EBlockingMode outputIsBlocking=E_BLOCKING) |
| Set the pipe's blocking mode. | |
| virtual void | setWriteBlocking (EBlockingMode isBlocking=E_BLOCKING) |
| Set blocking mode for writing to pipe. | |
| virtual void | setReadBlocking (EBlockingMode isBlocking=E_BLOCKING) |
| Set blocking mode for reading from pipe. | |
| virtual EBlockingMode | getReadBlocking () const |
| Get the current blocking mode for reading from pipe. | |
| virtual EBlockingMode | getWriteBlocking () const |
| Get the current blocking mode for writing from pipe. | |
| virtual Select_t | getReadSelectObj () const |
| Get the read select object. | |
| virtual Select_t | getWriteSelectObj () const |
| Get the write select object. | |
| virtual Descriptor | getInputDescriptor () const |
| Get the underlying input descriptor. | |
| virtual Descriptor | getOutputDescriptor () const |
| Get the underlying output descriptor. | |
| virtual void | passDescriptor (Descriptor h, const UnnamedPipeRef &ackPipe=0, const ProcessRef &targetProcess=0) |
Sends a Descriptor to the peer. | |
| virtual AutoDescriptor | receiveDescriptor (const UnnamedPipeRef &ackPipe) |
Gets a Descriptor from the peer. | |
Private Member Functions | |
| PosixUnnamedPipe (const PosixUnnamedPipe &x) | |
| PosixUnnamedPipe & | operator= (const PosixUnnamedPipe &x) |
Private Attributes | |
| Descriptor | m_fds [2] |
| EBlockingMode | m_blocking [2] |
Definition at line 50 of file PosixUnnamedPipe.hpp.
| BLOCXX_NAMESPACE::PosixUnnamedPipe::PosixUnnamedPipe | ( | EOpen | doOpen = E_OPEN |
) |
Definition at line 351 of file PosixUnnamedPipe.cpp.
References BLOCXX_INVALID_HANDLE, BLOCXX_NAMESPACE::UnnamedPipe::E_BLOCKING, m_fds, open(), BLOCXX_NAMESPACE::Timeout::relative(), setBlocking(), and BLOCXX_NAMESPACE::UnnamedPipe::setTimeouts().
| BLOCXX_NAMESPACE::PosixUnnamedPipe::PosixUnnamedPipe | ( | AutoDescriptor | inputfd, | |
| AutoDescriptor | outputfd | |||
| ) |
If fd_in == -1, then you cannot read from this object.
If fd_out == -1, then you cannot write to this object
Definition at line 363 of file PosixUnnamedPipe.cpp.
References BLOCXX_NAMESPACE::UnnamedPipe::E_BLOCKING, BLOCXX_NAMESPACE::AutoResource< Policy >::get(), m_fds, BLOCXX_NAMESPACE::Timeout::relative(), BLOCXX_NAMESPACE::AutoResource< Policy >::release(), setBlocking(), BLOCXX_NAMESPACE::setDefaultKernelBufsz(), and BLOCXX_NAMESPACE::UnnamedPipe::setTimeouts().
| BLOCXX_NAMESPACE::PosixUnnamedPipe::~PosixUnnamedPipe | ( | ) | [virtual] |
| BLOCXX_NAMESPACE::PosixUnnamedPipe::PosixUnnamedPipe | ( | const PosixUnnamedPipe & | x | ) | [private] |
| int BLOCXX_NAMESPACE::PosixUnnamedPipe::write | ( | const void * | dataOut, | |
| int | dataOutLen, | |||
| ErrorAction | errorAsException = E_RETURN_ON_ERROR | |||
| ) | [virtual] |
Write a specified number of bytes to the device that is exposing the IOIFC interface.
| dataOut | A pointer to a location in memory that contains the bytes that will be written to the device. | |
| dataOutLen | The length of the data pointed to by the dataOut param. | |
| errorAsException | If true and an error occurs durring the write operation, then throw an exception. |
| An | exception will be thrown upon an error condition if errorAsException is true. |
Implements BLOCXX_NAMESPACE::IOIFC.
Definition at line 526 of file PosixUnnamedPipe.cpp.
References BLOCXX_INVALID_HANDLE, BLOCXX_THROW, BLOCXX_THROW_ERRNO_MSG, BLOCXX_NAMESPACE::UnnamedPipe::E_BLOCKING, BLOCXX_NAMESPACE::IOIFC::E_THROW_ON_ERROR, BLOCXX_NAMESPACE::SocketFlags::E_WAIT_FOR_OUTPUT, ETIMEDOUT, BLOCXX_NAMESPACE::UnnamedPipe::getWriteTimeout(), m_blocking, m_fds, BLOCXX_NAMESPACE::upwrite(), and BLOCXX_NAMESPACE::SocketUtils::waitForIO().
| int BLOCXX_NAMESPACE::PosixUnnamedPipe::read | ( | void * | dataIn, | |
| int | dataInLen, | |||
| ErrorAction | errorAsException = E_RETURN_ON_ERROR | |||
| ) | [virtual] |
Read a specified number of bytes from the device that is exposing the IOIFC interface.
| dataIn | A pointer to a location in memory to put the bytes that have been read. | |
| dataInLen | The number of bytes being requested from the device. | |
| errorAsException | If true and an error occurs durring the read operation, then throw an exception. |
| An | exception will be thrown upon an error condition if errorAsException is true. |
Implements BLOCXX_NAMESPACE::IOIFC.
Definition at line 567 of file PosixUnnamedPipe.cpp.
References BLOCXX_INVALID_HANDLE, BLOCXX_THROW, BLOCXX_THROW_ERRNO_MSG, closeInputHandle(), BLOCXX_NAMESPACE::UnnamedPipe::E_BLOCKING, BLOCXX_NAMESPACE::IOIFC::E_THROW_ON_ERROR, BLOCXX_NAMESPACE::SocketFlags::E_WAIT_FOR_INPUT, ETIMEDOUT, BLOCXX_NAMESPACE::UnnamedPipe::getReadTimeout(), m_blocking, m_fds, BLOCXX_NAMESPACE::upread(), and BLOCXX_NAMESPACE::SocketUtils::waitForIO().
| Descriptor BLOCXX_NAMESPACE::PosixUnnamedPipe::getInputHandle | ( | ) | const [inline] |
Definition at line 61 of file PosixUnnamedPipe.hpp.
Referenced by BLOCXX_NAMESPACE::Exec::PreExec::setupStandardDescriptors().
| Descriptor BLOCXX_NAMESPACE::PosixUnnamedPipe::getOutputHandle | ( | ) | const [inline] |
Definition at line 62 of file PosixUnnamedPipe.hpp.
Referenced by BLOCXX_NAMESPACE::Exec::PreExec::setupStandardDescriptors().
| void BLOCXX_NAMESPACE::PosixUnnamedPipe::open | ( | ) | [virtual] |
Open the pipe.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 436 of file PosixUnnamedPipe.cpp.
References BLOCXX_INVALID_HANDLE, BLOCXX_THROW_ERRNO_MSG, close(), m_fds, and BLOCXX_NAMESPACE::setDefaultKernelBufsz().
Referenced by PosixUnnamedPipe().
| int BLOCXX_NAMESPACE::PosixUnnamedPipe::close | ( | ) | [virtual] |
Close the pipe.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 462 of file PosixUnnamedPipe.cpp.
References BLOCXX_INVALID_HANDLE, m_fds, and BLOCXX_NAMESPACE::upclose().
Referenced by open(), and ~PosixUnnamedPipe().
| bool BLOCXX_NAMESPACE::PosixUnnamedPipe::isOpen | ( | ) | const [virtual] |
Is the pipe open or closed?
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 489 of file PosixUnnamedPipe.cpp.
References BLOCXX_INVALID_HANDLE, and m_fds.
| int BLOCXX_NAMESPACE::PosixUnnamedPipe::closeInputHandle | ( | ) | [virtual] |
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 496 of file PosixUnnamedPipe.cpp.
References BLOCXX_INVALID_HANDLE, m_fds, and BLOCXX_NAMESPACE::upclose().
Referenced by read().
| int BLOCXX_NAMESPACE::PosixUnnamedPipe::closeOutputHandle | ( | ) | [virtual] |
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 511 of file PosixUnnamedPipe.cpp.
References BLOCXX_INVALID_HANDLE, m_fds, and BLOCXX_NAMESPACE::upclose().
| void BLOCXX_NAMESPACE::PosixUnnamedPipe::setBlocking | ( | EBlockingMode | isBlocking = E_BLOCKING |
) | [virtual] |
Set the pipe's blocking mode.
Precondition: The pipe is open.
| isBlocking | new blocking mode. |
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 410 of file PosixUnnamedPipe.cpp.
References BLOCXX_ASSERT, BLOCXX_INVALID_HANDLE, i, m_blocking, m_fds, and BLOCXX_NAMESPACE::set_desc_blocking().
Referenced by PosixUnnamedPipe().
| void BLOCXX_NAMESPACE::PosixUnnamedPipe::setWriteBlocking | ( | EBlockingMode | isBlocking = E_BLOCKING |
) | [virtual] |
Set blocking mode for writing to pipe.
Precondition: The pipe output is open.
| isBlocking | new write blocking mode. |
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 424 of file PosixUnnamedPipe.cpp.
References m_blocking, m_fds, and BLOCXX_NAMESPACE::set_desc_blocking().
| void BLOCXX_NAMESPACE::PosixUnnamedPipe::setReadBlocking | ( | EBlockingMode | isBlocking = E_BLOCKING |
) | [virtual] |
Set blocking mode for reading from pipe.
Precondition: The pipe input is open.
| isBlocking | new read blocking mode. |
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 430 of file PosixUnnamedPipe.cpp.
References m_blocking, m_fds, and BLOCXX_NAMESPACE::set_desc_blocking().
| EBlockingMode BLOCXX_NAMESPACE::PosixUnnamedPipe::getReadBlocking | ( | ) | const [virtual] |
Get the current blocking mode for reading from pipe.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 752 of file PosixUnnamedPipe.cpp.
References m_blocking.
| EBlockingMode BLOCXX_NAMESPACE::PosixUnnamedPipe::getWriteBlocking | ( | ) | const [virtual] |
Get the current blocking mode for writing from pipe.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 759 of file PosixUnnamedPipe.cpp.
References m_blocking.
| Select_t BLOCXX_NAMESPACE::PosixUnnamedPipe::getReadSelectObj | ( | ) | const [virtual] |
Get the read select object.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 614 of file PosixUnnamedPipe.cpp.
References m_fds.
| Select_t BLOCXX_NAMESPACE::PosixUnnamedPipe::getWriteSelectObj | ( | ) | const [virtual] |
Get the write select object.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 621 of file PosixUnnamedPipe.cpp.
References m_fds.
| Descriptor BLOCXX_NAMESPACE::PosixUnnamedPipe::getInputDescriptor | ( | ) | const [virtual] |
Get the underlying input descriptor.
The UnnamedPipe instance retains ownership of the descriptor.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 738 of file PosixUnnamedPipe.cpp.
References m_fds.
| Descriptor BLOCXX_NAMESPACE::PosixUnnamedPipe::getOutputDescriptor | ( | ) | const [virtual] |
Get the underlying output descriptor.
The UnnamedPipe instance retains ownership of the descriptor.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 745 of file PosixUnnamedPipe.cpp.
References m_fds.
| void BLOCXX_NAMESPACE::PosixUnnamedPipe::passDescriptor | ( | Descriptor | h, | |
| const UnnamedPipeRef & | ackPipe = 0, |
|||
| const ProcessRef & | targetProcess = 0 | |||
| ) | [virtual] |
Sends a Descriptor to the peer.
| h | The Descriptor to send. |
| IOException | on I/O error. |
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 628 of file PosixUnnamedPipe.cpp.
References BLOCXX_INVALID_HANDLE, BLOCXX_THROW, BLOCXX_THROW_ERRNO_MSG, BLOCXX_NAMESPACE::callOnce(), BLOCXX_NAMESPACE::UnnamedPipe::E_BLOCKING, BLOCXX_NAMESPACE::IOIFC::E_RETURN_ON_ERROR, BLOCXX_NAMESPACE::SocketFlags::E_WAIT_FOR_INPUT, BLOCXX_NAMESPACE::SocketFlags::E_WAIT_FOR_OUTPUT, ETIMEDOUT, BLOCXX_NAMESPACE::UnnamedPipe::getWriteTimeout(), BLOCXX_NAMESPACE::Timeout::infinite, m_blocking, m_fds, BLOCXX_NAMESPACE::passDescriptor(), and BLOCXX_NAMESPACE::SocketUtils::waitForIO().
| AutoDescriptor BLOCXX_NAMESPACE::PosixUnnamedPipe::receiveDescriptor | ( | const UnnamedPipeRef & | ackPipe | ) | [virtual] |
Gets a Descriptor from the peer.
Descriptor sent by the peer.| IOException | on I/O error or if the peer does not send a Descriptor |
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 694 of file PosixUnnamedPipe.cpp.
References BLOCXX_INVALID_HANDLE, BLOCXX_THROW, BLOCXX_THROW_ERRNO_MSG, BLOCXX_NAMESPACE::callOnce(), BLOCXX_NAMESPACE::UnnamedPipe::E_BLOCKING, BLOCXX_NAMESPACE::IOIFC::E_THROW_ON_ERROR, BLOCXX_NAMESPACE::SocketFlags::E_WAIT_FOR_INPUT, BLOCXX_NAMESPACE::SocketFlags::E_WAIT_FOR_OUTPUT, ETIMEDOUT, BLOCXX_NAMESPACE::UnnamedPipe::getReadTimeout(), BLOCXX_NAMESPACE::Timeout::infinite, m_blocking, m_fds, BLOCXX_NAMESPACE::receiveDescriptor(), and BLOCXX_NAMESPACE::SocketUtils::waitForIO().
| PosixUnnamedPipe& BLOCXX_NAMESPACE::PosixUnnamedPipe::operator= | ( | const PosixUnnamedPipe & | x | ) | [private] |
Descriptor BLOCXX_NAMESPACE::PosixUnnamedPipe::m_fds[2] [private] |
Definition at line 86 of file PosixUnnamedPipe.hpp.
Referenced by close(), closeInputHandle(), closeOutputHandle(), getInputDescriptor(), getOutputDescriptor(), getReadSelectObj(), getWriteSelectObj(), isOpen(), open(), passDescriptor(), PosixUnnamedPipe(), read(), receiveDescriptor(), setBlocking(), setReadBlocking(), setWriteBlocking(), and write().
Definition at line 87 of file PosixUnnamedPipe.hpp.
Referenced by getReadBlocking(), getWriteBlocking(), passDescriptor(), read(), receiveDescriptor(), setBlocking(), setReadBlocking(), setWriteBlocking(), and write().
1.5.6