UDocumentation
UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CurlMultiPollEventLoopHttpThread.h
Go to the documentation of this file.
1
// Copyright Epic Games, Inc. All Rights Reserved.
2
3
#pragma once
4
5
#include "
CoreTypes.h
"
6
7
#if WITH_CURL
8
#if WITH_CURL_MULTIPOLL
9
10
#include "
EventLoopHttpThread.h
"
11
#include "
EventLoop/EventLoop.h
"
12
#include "
Templates/Function.h
"
13
14
#if PLATFORM_MICROSOFT
15
#include "
Microsoft/AllowMicrosoftPlatformTypes.h
"
16
#endif
17
#ifdef PLATFORM_CURL_INCLUDE
18
#include PLATFORM_CURL_INCLUDE
19
#else
20
#include "curl/curl.h"
21
#endif
22
#if PLATFORM_MICROSOFT
23
#include "
Microsoft/HideMicrosoftPlatformTypes.h
"
24
#endif
25
26
class
FHttpRequestCommon
;
27
class
FCurlMultiPollIOManager
;
28
29
class
FCurlMultiPollIOManagerIOAccess
final :
public
FNoncopyable
30
{
31
public
:
32
FCurlMultiPollIOManagerIOAccess
(
FCurlMultiPollIOManager
&
InIOManager
);
33
34
// Nothing needed for now.
35
36
private
:
37
FCurlMultiPollIOManager
& IOManager;
38
};
39
40
class
FCurlMultiPollIOManager
final :
public
UE::EventLoop::IIOManager
41
{
42
public
:
43
using
FIOAccess =
FCurlMultiPollIOManagerIOAccess
;
44
45
struct
FParams
46
{
47
CURLM
*
MultiHandle
=
nullptr
;
48
TUniqueFunction
<
void
()>
ProcessCurlRequests
;
49
};
50
51
FCurlMultiPollIOManager
(
UE::EventLoop::IEventLoop
&
EventLoop
, FParams&& Params);
52
virtual
~FCurlMultiPollIOManager
() =
default
;
53
virtual
bool
Init
()
override
;
54
virtual
void
Shutdown
()
override
;
55
virtual
void
Notify
()
override
;
56
virtual
void
Poll
(
FTimespan
WaitTime)
override
;
57
58
FIOAccess& GetIOAccess()
59
{
60
return
IOAccess;
61
}
62
63
private
:
64
void
CheckMultiCodeOk
(
const
CURLMcode
Code);
65
66
FIOAccess IOAccess;
67
UE::EventLoop::IEventLoop
&
EventLoop
;
68
FParams
Params
;
69
};
70
71
class
FCurlMultiPollEventLoopHttpThread
72
:
public
FEventLoopHttpThread
73
{
74
public
:
75
76
FCurlMultiPollEventLoopHttpThread
();
77
78
protected
:
79
//~ Begin FHttpThread Interface
80
virtual
bool
StartThreadedRequest
(
FHttpRequestCommon
* Request)
override
;
81
virtual
void
CompleteThreadedRequest
(
FHttpRequestCommon
* Request)
override
;
82
//~ End FHttpThread Interface
83
protected
:
84
virtual
void
CreateEventLoop
()
override
;
85
virtual
void
DestroyEventLoop
()
override
;
86
virtual
void
UpdateEventLoopConfigs
()
override
;
87
virtual
UE::EventLoop::IEventLoop
*
GetEventLoop
()
override
;
88
virtual
UE::EventLoop::IEventLoop
&
GetEventLoopChecked
()
override
;
89
90
void
ProcessCurlRequests
();
91
92
TOptional<UE::EventLoop::TEventLoop<FCurlMultiPollIOManager>
>
EventLoop
;
93
95
TMap<CURL*, FHttpRequestCommon*>
HandlesToRequests
;
96
};
97
98
#endif
// WITH_CURL_MULTIPOLL
99
#endif
// WITH_CURL
void
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
AllowMicrosoftPlatformTypes.h
CoreTypes.h
Function.h
StaticCastSharedRef
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition
SharedPointer.h:127
EventLoopHttpThread.h
EventLoop.h
HideMicrosoftPlatformTypes.h
EventLoop
Definition
EventLoop.Build.cs:6
FEventLoopHttpThread
Definition
EventLoopHttpThread.h:10
FEventLoopHttpThread::CreateEventLoop
virtual void CreateEventLoop()=0
FEventLoopHttpThread::GetEventLoop
virtual UE::EventLoop::IEventLoop * GetEventLoop()=0
FEventLoopHttpThread::GetEventLoopChecked
virtual UE::EventLoop::IEventLoop & GetEventLoopChecked()=0
FEventLoopHttpThread::DestroyEventLoop
virtual void DestroyEventLoop()=0
FEventLoopHttpThread::UpdateEventLoopConfigs
virtual void UpdateEventLoopConfigs()=0
FHttpRequestCommon
Definition
HttpRequestCommon.h:15
FHttpThreadBase::StartThreadedRequest
virtual bool StartThreadedRequest(FHttpRequestCommon *Request)
Definition
HttpThread.cpp:223
FHttpThreadBase::CompleteThreadedRequest
virtual void CompleteThreadedRequest(FHttpRequestCommon *Request)
Definition
HttpThread.cpp:228
FNoncopyable
Definition
UnrealTemplate.h:321
TMap
Definition
UnrealString.h.inl:34
TUniqueFunction
Definition
FunctionFwd.h:19
UE::EventLoop::IEventLoop
Definition
IEventLoop.h:26
UE::EventLoop::IIOManager
Definition
IEventLoopIOManager.h:28
UE::EventLoop::IIOManager::Shutdown
virtual void Shutdown()=0
UE::EventLoop::IIOManager::Notify
virtual void Notify()=0
UE::EventLoop::IIOManager::Init
virtual bool Init()=0
UE::EventLoop::IIOManager::Poll
virtual void Poll(FTimespan WaitTime)=0
MeshPaintVirtualTexture::Params
FUniformParams Params
Definition
MeshPaintVirtualTexture.cpp:162
FTimespan
Definition
Timespan.h:76
TOptional
Definition
Optional.h:131
Engine
Source
Runtime
Online
HTTP
Private
Curl
CurlMultiPollEventLoopHttpThread.h
Generated by
1.9.8