The Pedigree Project 0.1
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
UnixSocketConnection::Stream Class Reference
+ Collaboration diagram for UnixSocketConnection::Stream:

Classes

struct  Control
 
class  ControlGuard
 

Public Member Functions

size_t write (const uint8_t *buffer, size_t count, bool block, const SharedPointer< SocketRights > &rights=SharedPointer< SocketRights >(), bool *interrupted=nullptr)
 
size_t writeVectors (const struct iovec *vectors, size_t vectorCount, bool block, const SharedPointer< SocketRights > &rights, bool *interrupted=nullptr)
 
size_t read (uint8_t *buffer, size_t count, bool block, SharedPointer< SocketRights > *rights=nullptr, bool *interrupted=nullptr)
 
size_t readVectors (struct iovec *vectors, size_t vectorCount, bool block, SharedPointer< SocketRights > *rights, bool *interrupted=nullptr)
 
bool canWrite (bool block)
 
bool canRead (bool block)
 
uint64_t readableGeneration () const
 
uint64_t writableGeneration () const
 
void disableWrites ()
 
void disableReads ()
 
void monitor (Semaphore *waiter)
 
void monitor (Thread *thread, Event *event)
 
void cullMonitorTargets (Semaphore *waiter)
 
void cullMonitorTargets (Event *event)
 
Buffer< uint8_t, true > & buffer ()
 

Private Member Functions

void discardControls ()
 
void discardControlsIfRequested ()
 

Private Attributes

Buffer< uint8_t, true > m_Bytes
 
UnixStreamSerializationGate m_SendLock
 
UnixStreamSerializationGate m_ReceiveLock
 
Mutex m_ControlLock
 
Atomic< bool > m_DiscardControlsRequested
 
List< Control * > m_Controls
 
uint64_t m_BytesWritten
 
uint64_t m_BytesRead
 

Detailed Description

One ordered byte/control direction in a connected stream socket pair.

Definition at line 99 of file UnixFilesystem.h.

Constructor & Destructor Documentation

◆ Stream()

UnixSocketConnection::Stream::Stream ( )

Definition at line 199 of file UnixFilesystem.cc.

◆ ~Stream()

UnixSocketConnection::Stream::~Stream ( )

Definition at line 215 of file UnixFilesystem.cc.

Member Function Documentation

◆ buffer()

Buffer< uint8_t, true > & UnixSocketConnection::Stream::buffer ( )
inline

Definition at line 125 of file UnixFilesystem.h.

◆ canRead()

bool UnixSocketConnection::Stream::canRead ( bool  block)

Definition at line 391 of file UnixFilesystem.cc.

◆ canWrite()

bool UnixSocketConnection::Stream::canWrite ( bool  block)

Definition at line 387 of file UnixFilesystem.cc.

◆ cullMonitorTargets() [1/2]

void UnixSocketConnection::Stream::cullMonitorTargets ( Event *  event)

Definition at line 439 of file UnixFilesystem.cc.

◆ cullMonitorTargets() [2/2]

void UnixSocketConnection::Stream::cullMonitorTargets ( Semaphore *  waiter)

Definition at line 435 of file UnixFilesystem.cc.

◆ disableReads()

void UnixSocketConnection::Stream::disableReads ( )

Definition at line 407 of file UnixFilesystem.cc.

◆ disableWrites()

void UnixSocketConnection::Stream::disableWrites ( )

Definition at line 403 of file UnixFilesystem.cc.

◆ discardControls()

void UnixSocketConnection::Stream::discardControls ( )
private

Definition at line 443 of file UnixFilesystem.cc.

◆ discardControlsIfRequested()

void UnixSocketConnection::Stream::discardControlsIfRequested ( )
private

Definition at line 449 of file UnixFilesystem.cc.

◆ monitor() [1/2]

void UnixSocketConnection::Stream::monitor ( Semaphore *  waiter)

Definition at line 427 of file UnixFilesystem.cc.

◆ monitor() [2/2]

void UnixSocketConnection::Stream::monitor ( Thread *  thread,
Event *  event 
)

Definition at line 431 of file UnixFilesystem.cc.

◆ read()

size_t UnixSocketConnection::Stream::read ( uint8_t *  buffer,
size_t  count,
bool  block,
SharedPointer< SocketRights > *  rights = nullptr,
bool *  interrupted = nullptr 
)

Definition at line 300 of file UnixFilesystem.cc.

◆ readableGeneration()

uint64_t UnixSocketConnection::Stream::readableGeneration ( ) const

Definition at line 395 of file UnixFilesystem.cc.

◆ readVectors()

size_t UnixSocketConnection::Stream::readVectors ( struct iovec *  vectors,
size_t  vectorCount,
bool  block,
SharedPointer< SocketRights > *  rights,
bool *  interrupted = nullptr 
)

Definition at line 306 of file UnixFilesystem.cc.

◆ writableGeneration()

uint64_t UnixSocketConnection::Stream::writableGeneration ( ) const

Definition at line 399 of file UnixFilesystem.cc.

◆ write()

size_t UnixSocketConnection::Stream::write ( const uint8_t *  buffer,
size_t  count,
bool  block,
const SharedPointer< SocketRights > &  rights = SharedPointer<SocketRights>(),
bool *  interrupted = nullptr 
)

Definition at line 221 of file UnixFilesystem.cc.

◆ writeVectors()

size_t UnixSocketConnection::Stream::writeVectors ( const struct iovec *  vectors,
size_t  vectorCount,
bool  block,
const SharedPointer< SocketRights > &  rights,
bool *  interrupted = nullptr 
)

Definition at line 228 of file UnixFilesystem.cc.

Member Data Documentation

◆ m_Bytes

Buffer<uint8_t, true> UnixSocketConnection::Stream::m_Bytes
private

Definition at line 151 of file UnixFilesystem.h.

◆ m_BytesRead

uint64_t UnixSocketConnection::Stream::m_BytesRead
private

Definition at line 158 of file UnixFilesystem.h.

◆ m_BytesWritten

uint64_t UnixSocketConnection::Stream::m_BytesWritten
private

Definition at line 157 of file UnixFilesystem.h.

◆ m_ControlLock

Mutex UnixSocketConnection::Stream::m_ControlLock
private

Definition at line 154 of file UnixFilesystem.h.

◆ m_Controls

List<Control*> UnixSocketConnection::Stream::m_Controls
private

Definition at line 156 of file UnixFilesystem.h.

◆ m_DiscardControlsRequested

Atomic<bool> UnixSocketConnection::Stream::m_DiscardControlsRequested
private

Definition at line 155 of file UnixFilesystem.h.

◆ m_ReceiveLock

UnixStreamSerializationGate UnixSocketConnection::Stream::m_ReceiveLock
private

Definition at line 153 of file UnixFilesystem.h.

◆ m_SendLock

UnixStreamSerializationGate UnixSocketConnection::Stream::m_SendLock
private

Definition at line 152 of file UnixFilesystem.h.


The documentation for this class was generated from the following files: