38 #ifndef BLOCXX_POSIX_UNNAMED_PIPE_HPP_
39 #define BLOCXX_POSIX_UNNAMED_PIPE_HPP_
40 #include "blocxx/BLOCXX_config.h"
59 virtual int write(
const void* data,
int dataLen,
ErrorAction errorAsException = E_RETURN_ON_ERROR);
60 virtual int read(
void* buffer,
int bufferLen,
ErrorAction errorAsException = E_RETURN_ON_ERROR);
65 virtual bool isOpen()
const;
66 virtual int closeInputHandle();
67 virtual int closeOutputHandle();
68 virtual void setBlocking(EBlockingMode outputIsBlocking=E_BLOCKING);
69 virtual void setWriteBlocking(EBlockingMode isBlocking=E_BLOCKING);
70 virtual void setReadBlocking(EBlockingMode isBlocking=E_BLOCKING);
71 virtual EBlockingMode getReadBlocking()
const;
72 virtual EBlockingMode getWriteBlocking()
const;
73 virtual Select_t getReadSelectObj()
const;
74 virtual Select_t getWriteSelectObj()
const;
76 virtual Descriptor getOutputDescriptor()
const;
87 EBlockingMode m_blocking[2];
IntrusiveReference< PosixUnnamedPipe > PosixUnnamedPipeRef
Abstract interface for an UnnamedPipe.
BLOCXX_COMMON_API int close(const FileHandle &hdl)
Close file handle.
Descriptor getOutputHandle() const
void read(std::streambuf &istrm, void *dataIn, size_t dataInLen)
PURPOSE: The AutoResource class template is an analog of std::auto_ptr for managing arbitrary resourc...
int passDescriptor(Descriptor streamPipe, Descriptor descriptor, ProcId targetProcessId)
Sends a Descriptor to the peer.
Descriptor getInputHandle() const
void write(std::streambuf &ostrm, void const *dataOut, size_t dataOutLen)
AutoDescriptor receiveDescriptor(Descriptor streamPipe)
Gets a Descriptor from the peer.