UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CurlMultiWaitEventLoopHttpThread.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_MULTIWAIT
9
10#include "EventLoopHttpThread.h"
11#include "EventLoop/EventLoop.h"
13#include "Templates/Function.h"
14
15#if PLATFORM_MICROSOFT
17#endif
18#ifdef PLATFORM_CURL_INCLUDE
19#include PLATFORM_CURL_INCLUDE
20#else
21#include "curl/curl.h"
22#endif
23#if PLATFORM_MICROSOFT
25#endif
26
29
31{
32public:
34
35 // Nothing needed for now.
36
37private:
38 FCurlMultiWaitIOManager& IOManager;
39};
40
42{
43public:
44 using FIOAccess = FCurlMultiWaitIOManagerIOAccess;
45
46 struct FParams
47 {
48 CURLM* MultiHandle = nullptr;
50 };
51
53 virtual ~FCurlMultiWaitIOManager() = default;
54 virtual bool Init() override;
55 virtual void Shutdown() override;
56 virtual void Notify() override;
57 virtual void Poll(FTimespan WaitTime) override;
58
59 FIOAccess& GetIOAccess()
60 {
61 return IOAccess;
62 }
63
64private:
65 void CheckMultiCodeOk(const CURLMcode Code);
66
67 FIOAccess IOAccess;
69 FParams Params;
72};
73
76{
77public:
78
80
81protected:
82 //~ Begin FHttpThread Interface
83 virtual bool StartThreadedRequest(FHttpRequestCommon* Request) override;
84 virtual void CompleteThreadedRequest(FHttpRequestCommon* Request) override;
85 //~ End FHttpThread Interface
86protected:
87 virtual void CreateEventLoop() override;
88 virtual void DestroyEventLoop() override;
89 virtual void UpdateEventLoopConfigs() override;
90 virtual UE::EventLoop::IEventLoop* GetEventLoop() override;
92
94
96
99};
100
101#endif // WITH_CURL_MULTIWAIT
102#endif // WITH_CURL
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition EventLoop.Build.cs:6
Definition EventLoopHttpThread.h:10
virtual void CreateEventLoop()=0
virtual UE::EventLoop::IEventLoop * GetEventLoop()=0
virtual UE::EventLoop::IEventLoop & GetEventLoopChecked()=0
virtual void DestroyEventLoop()=0
virtual void UpdateEventLoopConfigs()=0
Definition HttpRequestCommon.h:15
virtual bool StartThreadedRequest(FHttpRequestCommon *Request)
Definition HttpThread.cpp:223
virtual void CompleteThreadedRequest(FHttpRequestCommon *Request)
Definition HttpThread.cpp:228
Definition UnrealTemplate.h:321
Definition UnrealString.h.inl:34
Definition FunctionFwd.h:19
Definition IEventLoop.h:26
Definition IEventLoopIOManager.h:28
virtual void Shutdown()=0
virtual void Notify()=0
virtual bool Init()=0
virtual void Poll(FTimespan WaitTime)=0
FUniformParams Params
Definition MeshPaintVirtualTexture.cpp:162
Definition Timespan.h:76
Definition Optional.h:131