TrinityCore
Loading...
Searching...
No Matches
Trinity::Net::NetworkThread< SocketType, DerivedThread > Class Template Reference

#include <NetworkThread.h>

Public Member Functions

 NetworkThread ()
 
 NetworkThread (NetworkThread const &)=delete
 
 NetworkThread (NetworkThread &&)=delete
 
NetworkThread & operator= (NetworkThread const &)=delete
 
NetworkThread & operator= (NetworkThread &&)=delete
 
virtual ~NetworkThread ()
 
void Stop ()
 
bool Start ()
 
void Wait ()
 
int32 GetConnectionCount () const
 
void AddSocket (std::shared_ptr< SocketType > &&sock)
 
Trinity::Asio::IoContext * GetIoContext ()
 

Protected Member Functions

virtual void SocketAdded (std::shared_ptr< SocketType > const &)
 
virtual void SocketRemoved (std::shared_ptr< SocketType > const &)
 
void AddNewSockets ()
 
void Run ()
 
void Update ()
 

Private Types

typedef std::vector< std::shared_ptr< SocketType > > SocketContainer
 

Private Attributes

std::atomic< int32 > _connections
 
std::atomic< bool > _stopped
 
std::unique_ptr< std::thread > _thread
 
SocketContainer _sockets
 
std::mutex _newSocketsLock
 
SocketContainer _newSockets
 
Trinity::Asio::IoContext _ioContext
 
Trinity::Asio::DeadlineTimer _updateTimer
 

Detailed Description

template<class SocketType, class DerivedThread>
class Trinity::Net::NetworkThread< SocketType, DerivedThread >

Definition at line 35 of file NetworkThread.h.

Member Typedef Documentation

◆ SocketContainer

template<class SocketType , class DerivedThread >
typedef std::vector<std::shared_ptr<SocketType> > Trinity::Net::NetworkThread< SocketType, DerivedThread >::SocketContainer
private

Definition at line 159 of file NetworkThread.h.

Constructor & Destructor Documentation

◆ NetworkThread() [1/3]

template<class SocketType , class DerivedThread >
Trinity::Net::NetworkThread< SocketType, DerivedThread >::NetworkThread ( )
inline

Definition at line 38 of file NetworkThread.h.

◆ NetworkThread() [2/3]

template<class SocketType , class DerivedThread >
Trinity::Net::NetworkThread< SocketType, DerivedThread >::NetworkThread ( NetworkThread< SocketType, DerivedThread > const &  )
delete

◆ NetworkThread() [3/3]

template<class SocketType , class DerivedThread >
Trinity::Net::NetworkThread< SocketType, DerivedThread >::NetworkThread ( NetworkThread< SocketType, DerivedThread > &&  )
delete

◆ ~NetworkThread()

Member Function Documentation

◆ AddNewSockets()

◆ AddSocket()

◆ GetConnectionCount()

template<class SocketType , class DerivedThread >
int32 Trinity::Net::NetworkThread< SocketType, DerivedThread >::GetConnectionCount ( ) const
inline

◆ GetIoContext()

template<class SocketType , class DerivedThread >
Trinity::Asio::IoContext * Trinity::Net::NetworkThread< SocketType, DerivedThread >::GetIoContext ( )
inline

◆ operator=() [1/2]

template<class SocketType , class DerivedThread >
NetworkThread & Trinity::Net::NetworkThread< SocketType, DerivedThread >::operator= ( NetworkThread< SocketType, DerivedThread > &&  )
delete

◆ operator=() [2/2]

template<class SocketType , class DerivedThread >
NetworkThread & Trinity::Net::NetworkThread< SocketType, DerivedThread >::operator= ( NetworkThread< SocketType, DerivedThread > const &  )
delete

◆ Run()

◆ SocketAdded()

template<class SocketType , class DerivedThread >
virtual void Trinity::Net::NetworkThread< SocketType, DerivedThread >::SocketAdded ( std::shared_ptr< SocketType > const &  )
inlineprotectedvirtual

◆ SocketRemoved()

template<class SocketType , class DerivedThread >
virtual void Trinity::Net::NetworkThread< SocketType, DerivedThread >::SocketRemoved ( std::shared_ptr< SocketType > const &  )
inlineprotectedvirtual

◆ Start()

template<class SocketType , class DerivedThread >
bool Trinity::Net::NetworkThread< SocketType, DerivedThread >::Start ( )
inline

◆ Stop()

◆ Update()

◆ Wait()

template<class SocketType , class DerivedThread >
void Trinity::Net::NetworkThread< SocketType, DerivedThread >::Wait ( )
inline

Member Data Documentation

◆ _connections

◆ _ioContext

◆ _newSockets

◆ _newSocketsLock

template<class SocketType , class DerivedThread >
std::mutex Trinity::Net::NetworkThread< SocketType, DerivedThread >::_newSocketsLock
private

◆ _sockets

◆ _stopped

template<class SocketType , class DerivedThread >
std::atomic<bool> Trinity::Net::NetworkThread< SocketType, DerivedThread >::_stopped
private

◆ _thread

template<class SocketType , class DerivedThread >
std::unique_ptr<std::thread> Trinity::Net::NetworkThread< SocketType, DerivedThread >::_thread
private

◆ _updateTimer

template<class SocketType , class DerivedThread >
Trinity::Asio::DeadlineTimer Trinity::Net::NetworkThread< SocketType, DerivedThread >::_updateTimer
private

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