38#ifndef BLOCXX_POSIX_UNNAMED_PIPE_HPP_
39#define BLOCXX_POSIX_UNNAMED_PIPE_HPP_
40#include "blocxx/BLOCXX_config.h"
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;
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.
PosixUnnamedPipe(const PosixUnnamedPipe &x)
Descriptor getInputHandle() const
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.
Descriptor getOutputHandle() const
PosixUnnamedPipe & operator=(const PosixUnnamedPipe &x)
EBlockingMode m_blocking[2]
PosixUnnamedPipe(EOpen doOpen=E_OPEN)
AutoDescriptor receiveDescriptor(Descriptor streamPipe)
Gets a Descriptor from the peer.
IntrusiveReference< UnnamedPipe > UnnamedPipeRef
int passDescriptor(Descriptor streamPipe, Descriptor descriptor, ProcId targetProcessId)
Sends a Descriptor to the peer.
IntrusiveReference< Process > ProcessRef
AutoResource< AutoDescriptorPolicy > AutoDescriptor
An analog of std::auto_ptr for descriptors.
IntrusiveReference< PosixUnnamedPipe > PosixUnnamedPipeRef