38 #ifndef BLOCXX_POSIX_UNNAMED_PIPE_HPP_
39 #define BLOCXX_POSIX_UNNAMED_PIPE_HPP_
40 #include "blocxx/BLOCXX_config.h"
50 class BLOCXX_COMMON_API PosixUnnamedPipe :
public UnnamedPipe
53 PosixUnnamedPipe(EOpen doOpen=E_OPEN);
58 virtual ~PosixUnnamedPipe();
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);
61 Descriptor getInputHandle()
const {
return m_fds[0]; }
62 Descriptor getOutputHandle()
const {
return m_fds[1]; }
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];