CoreComponents 3.0.0
A Modern C++ Toolkit
Loading...
Searching...
No Matches
Stream::State Struct Reference

Internal state. More...

#include <Stream>

Inheritance diagram for Stream::State:

Public Member Functions

virtual bool waitEstablished (int timeout=-1)
 Wait until the connection is fully established.
 
virtual bool wait (IoEvent event, int timeout=-1)
 Wait for an I/O event.
 
virtual long read (Out< Bytes > buffer, long maxFill=-1)
 Read available bytes into buffer and return number of bytes read.
 
virtual void write (const Bytes &buffer, long fill=-1)
 Write fill bytes from buffer (if fill < 0 write all bytes from buffer)
 
virtual void write (const List< Bytes > &buffers)
 Write the contents of buffers in one go.
 
virtual void write (const struct iovec *iov, int iovcnt)
 Write the contents of the iov buffers in one go.
 
virtual bool isDiscarding () const
 Return true if this stream is discarding all writes
 
virtual long long transferTo (const Stream &sink, long long count, const Bytes &buffer)
 Transfer a span of bytes.
 
virtual long defaultTransferUnit () const
 Default I/O buffer size.
 
long long transferTo (const Stream &sink, long long count=-1)
 Transfer a span of bytes.
 
long long skip (long long count)
 Read and discard count bytes.
 
void drain (const Bytes &auxBuffer=Bytes{})
 Read everything that is left.
 
long readSpan (Out< Bytes > buffer)
 Read fixed number of bytes.
 
String readSpan (long count)
 Read a fixed number of bytes.
 
String readAll (const Bytes &auxBuffer=Bytes{})
 Read the entire stream.
 
- Public Member Functions inherited from Object::State
 State ()=default
 Default constructor.
 
 State (const State &)
 Copy constructor.
 
virtual ~State ()
 Virtual destructor.
 
long useCount () const
 Reference count.
 
const Stateoperator= (const State &) const
 
template<class T >
bool is () const
 Check if this state is of type T.
 
template<class T >
T & as ()
 Statically cast this state to a different type T.
 
template<class T >
const T & as () const
 Statically cast this state to a different type T.
 

Detailed Description

Internal state.

Member Function Documentation

◆ waitEstablished()

virtual bool waitEstablished ( int timeout = -1)
virtual

Wait until the connection is fully established.

Parameters
timeoutMaximum timeout to wait in milliseconds
Returns
True if connectio was established before timeout
Exceptions
SocketErrorConnection request failed

◆ wait()

virtual bool wait ( IoEvent event,
int timeout = -1 )
virtual

Wait for an I/O event.

Parameters
eventCombination of IoEvent flags
timeoutMaximum timeout in milliseconds (or infinite if < 0)
Returns
True if one of the indicated events occured, false otherwise

◆ read()

virtual long read ( Out< Bytes > buffer,
long maxFill = -1 )
virtual

Read available bytes into buffer and return number of bytes read.

◆ write() [1/3]

virtual void write ( const Bytes & buffer,
long fill = -1 )
virtual

Write fill bytes from buffer (if fill < 0 write all bytes from buffer)

◆ write() [2/3]

void write ( const List< Bytes > & buffers)
virtual

Write the contents of buffers in one go.

◆ write() [3/3]

void write ( const struct iovec * iov,
int iovcnt )
virtual

Write the contents of the iov buffers in one go.

See also
writev(2)

◆ isDiscarding()

virtual bool isDiscarding ( ) const
virtual

Return true if this stream is discarding all writes

◆ transferTo() [1/2]

long long transferTo ( const Stream & sink,
long long count,
const Bytes & buffer )
virtual

Transfer a span of bytes.

Parameters
sinkTarget stream
countNumber of bytes to transfer (or -1 for all)
bufferAuxiliary transfer buffer
Returns
Number of bytes transferred

◆ defaultTransferUnit()

virtual long defaultTransferUnit ( ) const
virtual

Default I/O buffer size.

◆ transferTo() [2/2]

long long transferTo ( const Stream & sink,
long long count = -1 )

Transfer a span of bytes.

Parameters
sinkTarget stream
countNumber of bytes to transfer (or -1 for all)
Returns
Number of bytes transferred

◆ skip()

long long skip ( long long count)

Read and discard count bytes.

◆ drain()

void drain ( const Bytes & auxBuffer = Bytes{})

Read everything that is left.

Parameters
auxBufferAuxiliary transfer buffer

◆ readSpan() [1/2]

long readSpan ( Out< Bytes > buffer)

Read fixed number of bytes.

Parameters
bufferTarget buffer (size of of the buffer defines span length)
Returns
Number of bytes read, which is only lower than buffer.count() on end of input

◆ readSpan() [2/2]

String readSpan ( long count)

Read a fixed number of bytes.

Parameters
countNumber of bytes to read
Returns
A String of exactly count bytes (possibly padded with zeros on end of input)

◆ readAll()

String readAll ( const Bytes & auxBuffer = Bytes{})

Read the entire stream.

Returns
A String comprising of all bytes read from the stream