26 FHost(
const FParams& Params);
44 uint32 IpAddresses[4] = {};
56: VerifyCert(Params.VerifyCert)
57, HostName(Params.HostName)
59, MaxConnections(
uint8(Params.MaxConnections))
60, MaxInflight(Params.MaxInflight)
62, bPooled(Params.bPooled)
64 check(MaxConnections && MaxConnections == Params.MaxConnections);
112 for (
const addrinfo* Cursor =
Info; Cursor !=
nullptr; Cursor = Cursor->ai_next)
146 switch (IpAddresses[0])
157 check(Socket.IsValid());
183 if (!Socket.SetBlocking(
false))
219 if (ParseUrl(Url, Offsets) < 0)
244 check(Params.ConnectionCount - 1u <= 63u);
245 check(Params.Port <= 0xffffu);
262 .MaxConnections = Params.ConnectionCount,
264 .MaxInflight = Params.MaxInflight,
265 .HttpVersion = Params.HttpVersion,
266 .VerifyCert = Params.VerifyCert,
297 OutString.
Appendf(
" (%u.%u.%u.%u)",
306 OutString.
Append(
" (unresolved)");
314 return ParseUrl(Url, Tmp) >= 0;
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define TRACE_CPUPROFILER_EVENT_SCOPE(Name)
Definition CpuProfilerTrace.h:528
#define ON_SCOPE_EXIT
Definition ScopeExit.h:73
#define UE_ARRAY_COUNT(array)
Definition UnrealTemplate.h:212
uint32 Size
Definition VulkanMemory.cpp:4034
memcpy(InputBufferBase, BinkBlocksData, BinkBlocksSize)
Definition StringBuilder.h:79
BuilderType & Appendf(const FmtType &Fmt, Types... Args)
Definition StringBuilder.h:419
BuilderType & Append(const OtherCharType *const String, const int32 Length)
Definition StringBuilder.h:238
constexpr int32 Len() const
Definition StringView.h:174
constexpr const CharType * GetData() const
Definition StringView.h:160
static UE_API FCertRootsRef NoTls()
Definition Peer.inl:400
static UE_API FCertRootsRef Default()
Definition Peer.inl:406
UE_API bool Resolve()
Definition ConnectionPool.inl:284
static UE_API bool IsValidHostUrl(FAnsiStringView Url)
Definition ConnectionPool.inl:311
UE_API void Describe(FAnsiStringBuilderBase &) const
Definition ConnectionPool.inl:290
UE_API ~FConnectionPool()
Definition ConnectionPool.inl:275
FConnectionPool()=default
Definition ConnectionPool.inl:10
EDirection
Definition ConnectionPool.inl:12
int32 GetBufferSize(EDirection Dir) const
Definition ConnectionPool.inl:79
void SetBufferSize(EDirection Dir, int32 Size)
Definition ConnectionPool.inl:73
uint32 GetMaxConnections() const
Definition ConnectionPool.inl:33
uint32 GetMaxInflight() const
Definition ConnectionPool.inl:34
FOutcome Connect(FSocket &Socket)
Definition ConnectionPool.inl:155
int32 IsResolved() const
Definition ConnectionPool.inl:144
uint32 GetPort() const
Definition ConnectionPool.inl:39
FCertRootsRef GetVerifyCert() const
Definition ConnectionPool.inl:32
EHttpVersion GetHttpVersion() const
Definition ConnectionPool.inl:35
uint32 GetIpAddress() const
Definition ConnectionPool.inl:37
bool IsPooled() const
Definition ConnectionPool.inl:36
FOutcome ResolveHostName()
Definition ConnectionPool.inl:85
static const uint32 InvalidIp
Definition ConnectionPool.inl:13
FHost(const FParams &Params)
Definition ConnectionPool.inl:55
FAnsiStringView GetHostName() const
Definition ConnectionPool.inl:38
static FOutcome Ok(int32 Result=0)
Definition Misc.inl:113
bool IsError() const
Definition Misc.inl:81
bool IsOk() const
Definition Misc.inl:86
static FOutcome Error(const char *Message, int32 Code=-1)
Definition Misc.inl:151
static FOutcome None()
Definition Misc.inl:80
Definition Socket.inl:367
Definition HttpServerHttpVersion.h:7
EHttpVersion
Definition Client.h:24
UPTRINT FCertRootsRef
Definition Client.h:56
uint32 Socket_HtoNl(uint32 v)
Definition Socket.inl:116
static FORCENOINLINE CORE_API void Free(void *Original)
Definition UnrealMemory.cpp:685
static const FCertRootsRef None
Definition Peer.inl:30
UE_API int32 SetHostFromUrl(FAnsiStringView Url)
Definition ConnectionPool.inl:216
FCertRootsRef VerifyCert
Definition Client.h:92
FAnsiStringView HostName
Definition Client.h:91
uint32 Port
Definition Client.h:95
Definition ConnectionPool.inl:16
uint8 MaxInflight
Definition ConnectionPool.inl:21
FCertRootsRef VerifyCert
Definition ConnectionPool.inl:23
uint32 Port
Definition ConnectionPool.inl:18
bool bPooled
Definition ConnectionPool.inl:20
uint16 MaxConnections
Definition ConnectionPool.inl:19
const ANSICHAR * HostName
Definition ConnectionPool.inl:17
FAnsiStringView Get(FAnsiStringView Url) const
Definition Misc.inl:208
Slice Port
Definition Misc.inl:216
Slice HostName
Definition Misc.inl:215
uint8 SchemeLength
Definition Misc.inl:218
uint8 Path
Definition Misc.inl:217