33static void Trace(
const struct FActivity*,
ETrace,
uint32);
34static void Trace(
UPTRINT,
ETrace Action,
const class FOutcome* =
nullptr);
36static void Trace(
ETrace Action) {}
37static void Trace(
const void*,
ETrace Action, ...) {}
48static void Trace(...) {}
58#define IAS_CVAR(Type, Name, Default, Desc, ...) \
59 Type G##Name = Default; \
60 static FAutoConsoleVariableRef CVar_Ias##Name( \
61 TEXT("ias.Http" #Name), \
69static IAS_CVAR(
int32,
IdleMs, 50'000,
"Time in milliseconds to close idle connections or fail waits");
86 bool IsOk()
const {
return Tag == OkTag; }
94 static uint32 const OkTag = 0x0000'8000;
95 static uint32 const WaitTag = 0x0001'8000;
96 static uint32 const BufferTag = 0x0002'0000;
97 static uint32 const StreamTag = 0x0004'0000;
110static_assert(
sizeof(FOutcome) ==
sizeof(
void*));
165template <u
int32 Base=10>
168 static_assert(
Base == 10 ||
Base == 16);
179 if constexpr (
Base != 16)
185 Digit = (c | 0x20) -
'a';
186 if (Digit >
uint32(
'f' -
'a'))
199template <u
int32 Base=10>
static int64 CrudeToInt(
const char*) =
delete;
230 const char* Start = Url.
GetData();
231 const char* Cursor = Start;
251 if (Cursor[i] !=
':' || Cursor[i + 1] !=
'/' || Cursor[i + 2] !=
'/')
259 for (; i < Url.
Len(); ++i)
263 if (c !=
':' && c !=
'@' && c !=
'/')
continue;
264 if (c ==
'/' ||
SepCount >= 2)
break;
273 if (i > 0xff || i <=
Scheme.Len() + 3)
291 if (
Seps[0].c ==
':')
305 if ((
Seps[0].c !=
'@') | (
Seps[1].c !=
':'))
361 uint32 GetCapacity()
const;
408char* FBuffer::GetDataPtr()
426uint32 FBuffer::GetCapacity()
const
476 checkSlow(((PageSize - 1) & PageSize) == 0);
479 Max = (AtLeast + PageSize) & ~PageSize;
483 Data =
UPTRINT(FMemory::Realloc(GetDataPtr(), Max,
alignof(
FBuffer)));
487 const char*
PrevData = GetDataPtr();
514 int64 CyclePeriod = 0;
527 check(CycleFreq >> SLICES_POW2);
564 return 0 -
int32((CyclePeriod * 1000ll) / CycleFreq);
568 int32 Released = Limit >> SLICES_POW2;
575 if (Limit == 0 || Unused == 0)
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define IAS_CVAR(Type, Name, Default, Desc,...)
Definition Misc.inl:58
const bool
Definition NetworkReplayStreaming.h:178
#define MAX_int32
Definition NumericLimits.h:25
#define UE_TRACE_CHANNEL(ChannelName,...)
Definition Trace.h:446
uint32 Size
Definition VulkanMemory.cpp:4034
memcpy(InputBufferBase, BinkBlocksData, BinkBlocksSize)
ViewType Mid(int32 Position, int32 CharCount=MAX_int32) const
Definition StringView.h:606
constexpr int32 Len() const
Definition StringView.h:174
ViewType Left(int32 CharCount) const
Definition StringView.h:580
constexpr const CharType * GetData() const
Definition StringView.h:160
void AdvanceUsed(uint32 Delta)
Definition Misc.inl:467
T * Alloc(uint32 Count=1)
Definition Misc.inl:433
FMutableSection GetMutableFree(uint32 MinSize, uint32 PageSize=256)
Definition Misc.inl:453
void Resize(uint32 Size)
Definition Misc.inl:401
uint32 GetSize() const
Definition Misc.inl:420
uint32 UsedInline
Definition Misc.inl:373
~FBuffer()
Definition Misc.inl:392
const char * GetData() const
Definition Misc.inl:414
uint32 Used
Definition Misc.inl:370
uint32 Inline
Definition Misc.inl:371
PTRINT Code
Definition Misc.inl:102
bool IsWaiting() const
Definition Misc.inl:82
static FOutcome Ok(int32 Result=0)
Definition Misc.inl:113
bool IsError() const
Definition Misc.inl:81
static FOutcome WaitStream(int32 Result=0)
Definition Misc.inl:141
uint32 Tag
Definition Misc.inl:106
int32 GetErrorCode() const
Definition Misc.inl:88
int32 Result
Definition Misc.inl:105
bool IsOk() const
Definition Misc.inl:86
UPTRINT Message
Definition Misc.inl:101
bool IsWaitBuffer() const
Definition Misc.inl:84
static FOutcome Error(const char *Message, int32 Code=-1)
Definition Misc.inl:151
FAnsiStringView GetMessage() const
Definition Misc.inl:87
bool IsWaitStream() const
Definition Misc.inl:85
static FOutcome WaitBuffer(int32 Result=0)
Definition Misc.inl:131
static FOutcome None()
Definition Misc.inl:80
static FOutcome Waiting(int32 Result=0)
Definition Misc.inl:122
bool IsWaitData() const
Definition Misc.inl:83
uint32 GetResult() const
Definition Misc.inl:89
void ReturnUnused(int32 Unused)
Definition Misc.inl:573
friend void ThrottleTest(FAnsiStringView)
Definition Test.inl:171
FThrottler()
Definition Misc.inl:524
int32 GetAllowance()
Definition Misc.inl:543
void SetLimit(uint32 KiBPerSec)
Definition Misc.inl:531
@ Trace
Definition NetTraceConfig.h:23
ETrace
Definition Misc.inl:12
IOSTOREHTTPCLIENT_API const void * GetIaxTraceChannel()
Definition Misc.inl:49
static uint64 Cycles64()
Definition AndroidPlatformTime.h:34
static FORCENOINLINE CORE_API void Free(void *Original)
Definition UnrealMemory.cpp:685
uint32 Size
Definition Misc.inl:347
char * Data
Definition Misc.inl:346
Slice(int32 l, int32 r)
Definition Misc.inl:207
FAnsiStringView Get(FAnsiStringView Url) const
Definition Misc.inl:208
uint8 Left
Definition Misc.inl:211
int32 Len() const
Definition Misc.inl:210
uint8 Right
Definition Misc.inl:212
Slice Port
Definition Misc.inl:216
Slice HostName
Definition Misc.inl:215
uint8 SchemeLength
Definition Misc.inl:218
uint8 Path
Definition Misc.inl:217
Slice UserInfo
Definition Misc.inl:214