blocxx
|
#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) |
virtual void | setWriteBlocking (EBlockingMode isBlocking=E_BLOCKING) |
virtual void | setReadBlocking (EBlockingMode isBlocking=E_BLOCKING) |
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 353 of file PosixUnnamedPipe.cpp.
References open().
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 365 of file PosixUnnamedPipe.cpp.
BLOCXX_NAMESPACE::PosixUnnamedPipe::~PosixUnnamedPipe | ( | ) | [virtual] |
Definition at line 377 of file PosixUnnamedPipe.cpp.
BLOCXX_NAMESPACE::PosixUnnamedPipe::PosixUnnamedPipe | ( | const PosixUnnamedPipe & | x | ) | [private] |
int BLOCXX_NAMESPACE::PosixUnnamedPipe::close | ( | ) | [virtual] |
Close the pipe.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 464 of file PosixUnnamedPipe.cpp.
References BLOCXX_INVALID_HANDLE, and m_fds.
Referenced by open().
int BLOCXX_NAMESPACE::PosixUnnamedPipe::closeInputHandle | ( | ) | [virtual] |
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 498 of file PosixUnnamedPipe.cpp.
References BLOCXX_INVALID_HANDLE, m_fds, and BLOCXX_NAMESPACE::cpp::upclose().
int BLOCXX_NAMESPACE::PosixUnnamedPipe::closeOutputHandle | ( | ) | [virtual] |
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 513 of file PosixUnnamedPipe.cpp.
References BLOCXX_INVALID_HANDLE, m_fds, and BLOCXX_NAMESPACE::cpp::upclose().
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 740 of file PosixUnnamedPipe.cpp.
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::getOutputDescriptor | ( | ) | const [virtual] |
Get the underlying output descriptor.
The UnnamedPipe instance retains ownership of the descriptor.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 747 of file PosixUnnamedPipe.cpp.
Descriptor BLOCXX_NAMESPACE::PosixUnnamedPipe::getOutputHandle | ( | ) | const [inline] |
Definition at line 62 of file PosixUnnamedPipe.hpp.
Referenced by BLOCXX_NAMESPACE::Exec::PreExec::setupStandardDescriptors().
EBlockingMode BLOCXX_NAMESPACE::PosixUnnamedPipe::getReadBlocking | ( | ) | const [virtual] |
Get the current blocking mode for reading from pipe.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 754 of file PosixUnnamedPipe.cpp.
Select_t BLOCXX_NAMESPACE::PosixUnnamedPipe::getReadSelectObj | ( | ) | const [virtual] |
Get the read select object.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 616 of file PosixUnnamedPipe.cpp.
EBlockingMode BLOCXX_NAMESPACE::PosixUnnamedPipe::getWriteBlocking | ( | ) | const [virtual] |
Get the current blocking mode for writing from pipe.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 761 of file PosixUnnamedPipe.cpp.
Select_t BLOCXX_NAMESPACE::PosixUnnamedPipe::getWriteSelectObj | ( | ) | const [virtual] |
Get the write select object.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 623 of file PosixUnnamedPipe.cpp.
bool BLOCXX_NAMESPACE::PosixUnnamedPipe::isOpen | ( | ) | const [virtual] |
Is the pipe open or closed?
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 491 of file PosixUnnamedPipe.cpp.
void BLOCXX_NAMESPACE::PosixUnnamedPipe::open | ( | ) | [virtual] |
Open the pipe.
Implements BLOCXX_NAMESPACE::UnnamedPipe.
Definition at line 438 of file PosixUnnamedPipe.cpp.
References close().
Referenced by PosixUnnamedPipe().
PosixUnnamedPipe& BLOCXX_NAMESPACE::PosixUnnamedPipe::operator= | ( | const PosixUnnamedPipe & | x | ) | [private] |
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 630 of file PosixUnnamedPipe.cpp.
References 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, 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 569 of file PosixUnnamedPipe.cpp.
References BLOCXX_THROW_ERRNO_MSG, 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::cpp::upread(), 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 696 of file PosixUnnamedPipe.cpp.
References 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, and BLOCXX_NAMESPACE::SocketUtils::waitForIO().
void BLOCXX_NAMESPACE::PosixUnnamedPipe::setBlocking | ( | EBlockingMode | outputIsBlocking = E_BLOCKING | ) | [virtual] |
Definition at line 412 of file PosixUnnamedPipe.cpp.
void BLOCXX_NAMESPACE::PosixUnnamedPipe::setReadBlocking | ( | EBlockingMode | isBlocking = E_BLOCKING | ) | [virtual] |
Definition at line 432 of file PosixUnnamedPipe.cpp.
void BLOCXX_NAMESPACE::PosixUnnamedPipe::setWriteBlocking | ( | EBlockingMode | isBlocking = E_BLOCKING | ) | [virtual] |
Definition at line 426 of file PosixUnnamedPipe.cpp.
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 528 of file PosixUnnamedPipe.cpp.
References 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::cpp::upwrite(), and BLOCXX_NAMESPACE::SocketUtils::waitForIO().
Definition at line 87 of file PosixUnnamedPipe.hpp.
Referenced by passDescriptor(), read(), receiveDescriptor(), and write().
Descriptor BLOCXX_NAMESPACE::PosixUnnamedPipe::m_fds[2] [private] |
Definition at line 86 of file PosixUnnamedPipe.hpp.
Referenced by close(), closeInputHandle(), closeOutputHandle(), passDescriptor(), read(), receiveDescriptor(), and write().