SocketStreams v1.11.1
Loading...
Searching...
No Matches
buffers::IOSocketBuffer Class Reference

Base input/output socket buffer. More...

#include <IOSocketBuffer.h>

Inheritance diagram for buffers::IOSocketBuffer:

Public Member Functions

 IOSocketBuffer ()=default
 
 IOSocketBuffer (const IOSocketBuffer &)=delete
 Deleted copy contructor.
 
 IOSocketBuffer (IOSocketBuffer &&other) noexcept=default
 Move constructor.
 
template<web::Timeout T = std::chrono::seconds>
 IOSocketBuffer (SOCKET clientSocket, T timeout=30s)
 Server side constructor.
 
template<web::Timeout T = std::chrono::seconds>
 IOSocketBuffer (std::string_view ip, std::string_view port, T timeout=30s)
 Client side constructor.
 
 IOSocketBuffer (std::unique_ptr< web::Network > &&networkSubclass)
 
IOSocketBufferoperator= (const IOSocketBuffer &)=delete
 Deleted copy assignment operator.
 
IOSocketBufferoperator= (IOSocketBuffer &&other) noexcept=default
 Move assignment operator.
 
const std::unique_ptr< web::Network > & getNetwork () const noexcept
 
int getLastPacketSize () const noexcept
 
bool getEndOfStream () const noexcept
 
 ~IOSocketBuffer ()=default
 

Protected Member Functions

size_t getAvailableInputSize () const
 
int_type overflow (int_type ch) override
 
int_type underflow () override
 
std::streamsize xsputn (const char_type *s, std::streamsize size) override
 
std::streamsize xsgetn (char_type *s, std::streamsize size) override
 

Protected Attributes

std::unique_ptr< web::Networknetwork
 
int lastPacketSize
 
BufferArray inputData
 
bool endOfStream
 

Detailed Description

Base input/output socket buffer.

Constructor & Destructor Documentation

◆ IOSocketBuffer() [1/6]

buffers::IOSocketBuffer::IOSocketBuffer ( )
default

◆ IOSocketBuffer() [2/6]

buffers::IOSocketBuffer::IOSocketBuffer ( const IOSocketBuffer & )
delete

Deleted copy contructor.

◆ IOSocketBuffer() [3/6]

buffers::IOSocketBuffer::IOSocketBuffer ( IOSocketBuffer && other)
defaultnoexcept

Move constructor.

Parameters
other

◆ IOSocketBuffer() [4/6]

template<web::Timeout T>
buffers::IOSocketBuffer::IOSocketBuffer ( SOCKET clientSocket,
T timeout = 30s )

Server side constructor.

Parameters
clientSocket
timeoutTimeout for receive and send calls

◆ IOSocketBuffer() [5/6]

template<web::Timeout T>
buffers::IOSocketBuffer::IOSocketBuffer ( std::string_view ip,
std::string_view port,
T timeout = 30s )

Client side constructor.

Parameters
ipRemote address to connect to
portRemote port to connect to
timeoutTimeout for receive and send calls
modeReceive mode

◆ IOSocketBuffer() [6/6]

buffers::IOSocketBuffer::IOSocketBuffer ( std::unique_ptr< web::Network > && networkSubclass)

◆ ~IOSocketBuffer()

buffers::IOSocketBuffer::~IOSocketBuffer ( )
default

Member Function Documentation

◆ getAvailableInputSize()

size_t buffers::IOSocketBuffer::getAvailableInputSize ( ) const
protected

◆ getEndOfStream()

bool buffers::IOSocketBuffer::getEndOfStream ( ) const
noexcept

◆ getLastPacketSize()

int buffers::IOSocketBuffer::getLastPacketSize ( ) const
noexcept

◆ getNetwork()

const std::unique_ptr< web::Network > & buffers::IOSocketBuffer::getNetwork ( ) const
noexcept

◆ operator=() [1/2]

IOSocketBuffer & buffers::IOSocketBuffer::operator= ( const IOSocketBuffer & )
delete

Deleted copy assignment operator.

Parameters
<br>
Returns

◆ operator=() [2/2]

IOSocketBuffer & buffers::IOSocketBuffer::operator= ( IOSocketBuffer && other)
defaultnoexcept

Move assignment operator.

Parameters
other
Returns
Self

◆ overflow()

IOSocketBuffer::int_type buffers::IOSocketBuffer::overflow ( int_type ch)
overrideprotected

◆ underflow()

IOSocketBuffer::int_type buffers::IOSocketBuffer::underflow ( )
overrideprotected

◆ xsgetn()

std::streamsize buffers::IOSocketBuffer::xsgetn ( char_type * s,
std::streamsize size )
overrideprotected

◆ xsputn()

std::streamsize buffers::IOSocketBuffer::xsputn ( const char_type * s,
std::streamsize size )
overrideprotected

Member Data Documentation

◆ endOfStream

bool buffers::IOSocketBuffer::endOfStream
protected

◆ inputData

BufferArray buffers::IOSocketBuffer::inputData
protected

◆ lastPacketSize

int buffers::IOSocketBuffer::lastPacketSize
protected

◆ network

std::unique_ptr<web::Network> buffers::IOSocketBuffer::network
protected

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