TrinityCore
Trinity::Net::Http::BaseSocket< Derived, Stream > Class Template Referenceabstract

#include <BaseHttpSocket.h>

+ Inheritance diagram for Trinity::Net::Http::BaseSocket< Derived, Stream >:

Public Member Functions

template<typename... Args>
 BaseSocket (boost::asio::ip::tcp::socket &&socket, Args &&... args)
 
 BaseSocket (BaseSocket const &other)=delete
 
 BaseSocket (BaseSocket &&other)=delete
 
BaseSocketoperator= (BaseSocket const &other)=delete
 
BaseSocketoperator= (BaseSocket &&other)=delete
 
 ~BaseSocket ()=default
 
void ReadHandler () override
 
bool HandleMessage (Request &request)
 
virtual RequestHandlerResult RequestHandler (RequestContext &context)=0
 
void SendResponse (RequestContext &context) override
 
void QueueQuery (QueryCallback &&queryCallback) override
 
bool Update () override
 
std::string GetClientInfo () const override
 
Optional< boost::uuids::uuid > GetSessionId () const final
 
- Public Member Functions inherited from Socket< Derived, Stream >
 Socket (boost::asio::ip::tcp::socket &&socket, Args &&... args)
 
 Socket (Socket const &other)=delete
 
 Socket (Socket &&other)=delete
 
Socketoperator= (Socket const &other)=delete
 
Socketoperator= (Socket &&other)=delete
 
virtual ~Socket ()
 
virtual void Start ()=0
 
virtual bool Update ()
 
boost::asio::ip::address GetRemoteIpAddress () const
 
uint16 GetRemotePort () const
 
void AsyncRead ()
 
void AsyncReadWithCallback (void(T::*callback)(boost::system::error_code const &, std::size_t))
 
void QueuePacket (MessageBuffer &&buffer)
 
bool IsOpen () const
 
void CloseSocket ()
 
void DelayedCloseSocket ()
 Marks the socket for closing after write buffer becomes empty. More...
 
MessageBufferGetReadBuffer ()
 
- Public Member Functions inherited from Trinity::Net::Http::AbstractSocket
 AbstractSocket ()=default
 
 AbstractSocket (AbstractSocket const &other)=default
 
 AbstractSocket (AbstractSocket &&other)=default
 
AbstractSocketoperator= (AbstractSocket const &other)=default
 
AbstractSocketoperator= (AbstractSocket &&other)=default
 
virtual ~AbstractSocket ()=default
 
virtual void SendResponse (RequestContext &context)=0
 
virtual void QueueQuery (QueryCallback &&queryCallback)=0
 
virtual std::string GetClientInfo () const =0
 
virtual Optional< boost::uuids::uuid > GetSessionId () const =0
 

Protected Member Functions

void ResetHttpParser ()
 
virtual std::shared_ptr< SessionStateObtainSessionState (RequestContext &context) const =0
 
- Protected Member Functions inherited from Socket< Derived, Stream >
virtual void OnClose ()
 
virtual void ReadHandler ()=0
 
bool AsyncProcessQueue ()
 
void SetNoDelay (bool enable)
 
Stream & underlying_stream ()
 

Protected Attributes

QueryCallbackProcessor _queryProcessor
 
Optional< RequestParser_httpParser
 
std::shared_ptr< SessionState_state
 

Private Types

using Base = ::Socket< Derived, Stream >
 

Additional Inherited Members

- Static Public Member Functions inherited from Trinity::Net::Http::AbstractSocket
static bool ParseRequest (MessageBuffer &packet, RequestParser &parser)
 
static std::string SerializeRequest (Request const &request)
 
static MessageBuffer SerializeResponse (Request const &request, Response &response)
 

Detailed Description

template<typename Derived, typename Stream>
class Trinity::Net::Http::BaseSocket< Derived, Stream >

Definition at line 62 of file BaseHttpSocket.h.

Member Typedef Documentation

◆ Base

template<typename Derived , typename Stream >
using Trinity::Net::Http::BaseSocket< Derived, Stream >::Base = ::Socket<Derived, Stream>
private

Definition at line 64 of file BaseHttpSocket.h.

Constructor & Destructor Documentation

◆ BaseSocket() [1/3]

template<typename Derived , typename Stream >
template<typename... Args>
Trinity::Net::Http::BaseSocket< Derived, Stream >::BaseSocket ( boost::asio::ip::tcp::socket &&  socket,
Args &&...  args 
)
inlineexplicit

Definition at line 68 of file BaseHttpSocket.h.

◆ BaseSocket() [2/3]

template<typename Derived , typename Stream >
Trinity::Net::Http::BaseSocket< Derived, Stream >::BaseSocket ( BaseSocket< Derived, Stream > const &  other)
delete

◆ BaseSocket() [3/3]

template<typename Derived , typename Stream >
Trinity::Net::Http::BaseSocket< Derived, Stream >::BaseSocket ( BaseSocket< Derived, Stream > &&  other)
delete

◆ ~BaseSocket()

template<typename Derived , typename Stream >
Trinity::Net::Http::BaseSocket< Derived, Stream >::~BaseSocket ( )
default

Member Function Documentation

◆ GetClientInfo()

template<typename Derived , typename Stream >
std::string Trinity::Net::Http::BaseSocket< Derived, Stream >::GetClientInfo ( ) const
inlineoverridevirtual

Implements Trinity::Net::Http::AbstractSocket.

Definition at line 155 of file BaseHttpSocket.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetSessionId()

template<typename Derived , typename Stream >
Optional< boost::uuids::uuid > Trinity::Net::Http::BaseSocket< Derived, Stream >::GetSessionId ( ) const
inlinefinalvirtual

Implements Trinity::Net::Http::AbstractSocket.

Definition at line 167 of file BaseHttpSocket.h.

◆ HandleMessage()

template<typename Derived , typename Stream >
bool Trinity::Net::Http::BaseSocket< Derived, Stream >::HandleMessage ( Request request)
inline

Definition at line 104 of file BaseHttpSocket.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ObtainSessionState()

template<typename Derived , typename Stream >
virtual std::shared_ptr< SessionState > Trinity::Net::Http::BaseSocket< Derived, Stream >::ObtainSessionState ( RequestContext context) const
protectedpure virtual

Implemented in Battlenet::LoginHttpSession.

+ Here is the caller graph for this function:

◆ operator=() [1/2]

template<typename Derived , typename Stream >
BaseSocket & Trinity::Net::Http::BaseSocket< Derived, Stream >::operator= ( BaseSocket< Derived, Stream > &&  other)
delete

◆ operator=() [2/2]

template<typename Derived , typename Stream >
BaseSocket & Trinity::Net::Http::BaseSocket< Derived, Stream >::operator= ( BaseSocket< Derived, Stream > const &  other)
delete

◆ QueueQuery()

template<typename Derived , typename Stream >
void Trinity::Net::Http::BaseSocket< Derived, Stream >::QueueQuery ( QueryCallback &&  queryCallback)
inlineoverridevirtual

Implements Trinity::Net::Http::AbstractSocket.

Definition at line 141 of file BaseHttpSocket.h.

+ Here is the call graph for this function:

◆ ReadHandler()

template<typename Derived , typename Stream >
void Trinity::Net::Http::BaseSocket< Derived, Stream >::ReadHandler ( )
inlineoverridevirtual

Implements Socket< Derived, Stream >.

Definition at line 78 of file BaseHttpSocket.h.

+ Here is the call graph for this function:

◆ RequestHandler()

template<typename Derived , typename Stream >
virtual RequestHandlerResult Trinity::Net::Http::BaseSocket< Derived, Stream >::RequestHandler ( RequestContext context)
pure virtual

Implemented in Battlenet::LoginHttpSession.

+ Here is the caller graph for this function:

◆ ResetHttpParser()

template<typename Derived , typename Stream >
void Trinity::Net::Http::BaseSocket< Derived, Stream >::ResetHttpParser ( )
inlineprotected

Definition at line 176 of file BaseHttpSocket.h.

+ Here is the caller graph for this function:

◆ SendResponse()

template<typename Derived , typename Stream >
void Trinity::Net::Http::BaseSocket< Derived, Stream >::SendResponse ( RequestContext context)
inlineoverridevirtual

Implements Trinity::Net::Http::AbstractSocket.

Definition at line 121 of file BaseHttpSocket.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Update()

template<typename Derived , typename Stream >
bool Trinity::Net::Http::BaseSocket< Derived, Stream >::Update ( )
inlineoverridevirtual

Reimplemented from Socket< Derived, Stream >.

Definition at line 146 of file BaseHttpSocket.h.

+ Here is the call graph for this function:

Member Data Documentation

◆ _httpParser

template<typename Derived , typename Stream >
Optional<RequestParser> Trinity::Net::Http::BaseSocket< Derived, Stream >::_httpParser
protected

Definition at line 186 of file BaseHttpSocket.h.

◆ _queryProcessor

template<typename Derived , typename Stream >
QueryCallbackProcessor Trinity::Net::Http::BaseSocket< Derived, Stream >::_queryProcessor
protected

Definition at line 185 of file BaseHttpSocket.h.

◆ _state

template<typename Derived , typename Stream >
std::shared_ptr<SessionState> Trinity::Net::Http::BaseSocket< Derived, Stream >::_state
protected

Definition at line 187 of file BaseHttpSocket.h.


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