DDNet documentation
Loading...
Searching...
No Matches
CHttpCurl Class Reference

#include <http_curl.h>

Inheritance diagram for CHttpCurl:
[legend]
Collaboration diagram for CHttpCurl:
[legend]

Public Member Functions

bool Init (std::chrono::milliseconds ShutdownDelay) override
void Shutdown () override
 ~CHttpCurl () override
void Run (std::shared_ptr< IHttpRequest > pRequest) override
bool HasIpresolveBug () const override
Public Member Functions inherited from IInterface
 IInterface ()
virtual ~IInterface ()=default

Private Types

enum  EState { UNINITIALIZED , RUNNING , ERROR }

Private Member Functions

void RunLoop ()

Static Private Member Functions

static void ThreadMain (void *pUser)

Private Attributes

void * m_pThread = nullptr
std::mutex m_Lock
std::condition_variable m_ConditionVariableInit
std::atomic< EStatem_State = UNINITIALIZED
std::deque< std::shared_ptr< CHttpRequestCurl > > m_PendingRequests
std::unordered_map< CURL *, std::shared_ptr< CHttpRequestCurl > > m_RunningRequests
std::chrono::milliseconds m_ShutdownDelay {}
std::optional< std::chrono::time_point< std::chrono::steady_clock > > m_ShutdownTime
std::atomic< bool > m_Shutdown = false
CURLM * m_pMultiH = nullptr
int m_NextTimeout

Additional Inherited Members

Static Public Member Functions inherited from IEngineHttp
static const char * InterfaceName ()
Static Public Member Functions inherited from IHttp
static const char * InterfaceName ()
Protected Member Functions inherited from IInterface
IKernelKernel ()

Member Enumeration Documentation

◆ EState

enum CHttpCurl::EState
private
Enumerator
UNINITIALIZED 
RUNNING 
ERROR 

Constructor & Destructor Documentation

◆ ~CHttpCurl()

CHttpCurl::~CHttpCurl ( )
override

Member Function Documentation

◆ HasIpresolveBug()

bool CHttpCurl::HasIpresolveBug ( ) const
overridevirtual

Implements IHttp.

◆ Init()

bool CHttpCurl::Init ( std::chrono::milliseconds ShutdownDelay)
overridevirtual

Implements IEngineHttp.

◆ Run()

void CHttpCurl::Run ( std::shared_ptr< IHttpRequest > pRequest)
overridevirtual

Implements IHttp.

◆ RunLoop()

void CHttpCurl::RunLoop ( )
private

◆ Shutdown()

void CHttpCurl::Shutdown ( )
overridevirtual

Implements IEngineHttp.

◆ ThreadMain()

void CHttpCurl::ThreadMain ( void * pUser)
staticprivate

Member Data Documentation

◆ m_ConditionVariableInit

std::condition_variable CHttpCurl::m_ConditionVariableInit
private

◆ m_Lock

std::mutex CHttpCurl::m_Lock
private

◆ m_NextTimeout

int CHttpCurl::m_NextTimeout
private

◆ m_PendingRequests

std::deque<std::shared_ptr<CHttpRequestCurl> > CHttpCurl::m_PendingRequests
private

◆ m_pMultiH

CURLM* CHttpCurl::m_pMultiH = nullptr
private

◆ m_pThread

void* CHttpCurl::m_pThread = nullptr
private

◆ m_RunningRequests

std::unordered_map<CURL *, std::shared_ptr<CHttpRequestCurl> > CHttpCurl::m_RunningRequests
private

◆ m_Shutdown

std::atomic<bool> CHttpCurl::m_Shutdown = false
private

◆ m_ShutdownDelay

std::chrono::milliseconds CHttpCurl::m_ShutdownDelay {}
private

◆ m_ShutdownTime

std::optional<std::chrono::time_point<std::chrono::steady_clock> > CHttpCurl::m_ShutdownTime
private

◆ m_State

std::atomic<EState> CHttpCurl::m_State = UNINITIALIZED
private

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