Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream > Class Template Reference

#include <BoostAsioWriteQueue.h>

Classes

struct  Entry

Public Types

typedef std::function< void(boost::system::error_code const &, size_t)> CompletionHandler

Public Member Functions

 BoostAsioWriteQueue (AsyncWriteStream &stream)
bool HasPendingOutput () const
void Queue (std::vector< char > data, CompletionHandler handler)

Private Member Functions

void FailQueued (boost::system::error_code const &error)
void HandleWrite (boost::system::error_code const &error, size_t transferredBytes)
void StartWrite ()
void SubtractPending (size_t bytes)

Private Attributes

std::atomic< size_t > _pendingBytes
std::deque< Entry_queue
boost::asio::strand< typename AsyncWriteStream::executor_type > _strand
AsyncWriteStream & _stream
bool _writeInProgress

Detailed Description

template<class AsyncWriteStream>
class Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >

Definition at line 25 of file BoostAsioWriteQueue.h.

Member Typedef Documentation

◆ CompletionHandler

template<class AsyncWriteStream>
typedef std::function<void(boost::system::error_code const&, size_t)> Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >::CompletionHandler

Definition at line 28 of file BoostAsioWriteQueue.h.

Constructor & Destructor Documentation

◆ BoostAsioWriteQueue()

template<class AsyncWriteStream>
Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >::BoostAsioWriteQueue ( AsyncWriteStream & stream)
inlineexplicit

Definition at line 30 of file BoostAsioWriteQueue.h.

References _pendingBytes, _queue, _strand, _stream, and _writeInProgress.

Member Function Documentation

◆ FailQueued()

template<class AsyncWriteStream>
void Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >::FailQueued ( boost::system::error_code const & error)
inlineprivate

◆ HandleWrite()

template<class AsyncWriteStream>
void Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >::HandleWrite ( boost::system::error_code const & error,
size_t transferredBytes )
inlineprivate

◆ HasPendingOutput()

template<class AsyncWriteStream>
bool Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >::HasPendingOutput ( ) const
inline

Definition at line 39 of file BoostAsioWriteQueue.h.

References _pendingBytes.

◆ Queue()

template<class AsyncWriteStream>
void Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >::Queue ( std::vector< char > data,
CompletionHandler handler )
inline

Definition at line 44 of file BoostAsioWriteQueue.h.

References _pendingBytes, _queue, _strand, _writeInProgress, and StartWrite().

◆ StartWrite()

template<class AsyncWriteStream>
void Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >::StartWrite ( )
inlineprivate

Definition at line 82 of file BoostAsioWriteQueue.h.

References _queue, _strand, _stream, and _writeInProgress.

Referenced by HandleWrite(), and Queue().

◆ SubtractPending()

template<class AsyncWriteStream>
void Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >::SubtractPending ( size_t bytes)
inlineprivate

Definition at line 137 of file BoostAsioWriteQueue.h.

References _pendingBytes.

Referenced by FailQueued(), and HandleWrite().

Member Data Documentation

◆ _pendingBytes

template<class AsyncWriteStream>
std::atomic<size_t> Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >::_pendingBytes
private

◆ _queue

template<class AsyncWriteStream>
std::deque<Entry> Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >::_queue
private

◆ _strand

template<class AsyncWriteStream>
boost::asio::strand<typename AsyncWriteStream::executor_type> Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >::_strand
private

Definition at line 143 of file BoostAsioWriteQueue.h.

Referenced by BoostAsioWriteQueue(), Queue(), and StartWrite().

◆ _stream

template<class AsyncWriteStream>
AsyncWriteStream& Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >::_stream
private

Definition at line 142 of file BoostAsioWriteQueue.h.

Referenced by BoostAsioWriteQueue(), and StartWrite().

◆ _writeInProgress

template<class AsyncWriteStream>
bool Skyfire::Net::BoostAsioWriteQueue< AsyncWriteStream >::_writeInProgress
private

Definition at line 146 of file BoostAsioWriteQueue.h.

Referenced by BoostAsioWriteQueue(), HandleWrite(), Queue(), and StartWrite().


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