38 #ifndef BLOCXX_UNNAMEDPIPE_HPP_
39 #define BLOCXX_UNNAMEDPIPE_HPP_
40 #include "blocxx/BLOCXX_config.h"
60 class BLOCXX_COMMON_API UnnamedPipe :
public IOIFC,
public IntrusiveCountableBase
63 virtual ~UnnamedPipe();
73 int writeInt(
int value);
94 int readInt(
int* value);
109 static const int INFINITE_TIMEOUT = -1;
117 void setReadTimeout(
const Timeout& timeout) { m_readTimeout = timeout; }
126 Timeout getReadTimeout() {
return m_readTimeout; }
134 void setWriteTimeout(
const Timeout& timeout) { m_writeTimeout = timeout; }
143 Timeout getWriteTimeout() {
return m_writeTimeout; }
151 void setTimeouts(
const Timeout& timeout) { m_readTimeout = m_writeTimeout = timeout; }
168 virtual void open() = 0;
174 virtual int close() = 0;
179 virtual bool isOpen()
const = 0;
184 virtual Select_t getReadSelectObj()
const = 0;
189 virtual Select_t getWriteSelectObj()
const = 0;
202 virtual void setBlocking(EBlockingMode isBlocking=E_BLOCKING) = 0;
216 virtual void setReadBlocking(
EBlockingMode isBlocking=E_BLOCKING) = 0;
238 virtual Descriptor getOutputDescriptor()
const = 0;
259 virtual int closeInputHandle() = 0;
260 virtual int closeOutputHandle() = 0;
332 : m_readTimeout(
Timeout::infinite)
333 , m_writeTimeout(
Timeout::infinite)
336 Timeout m_readTimeout;
337 Timeout m_writeTimeout;
343 #endif // BLOCXX_UNNAMEDPIPE_HPP_