20#ifndef PLATFORM_SUPPORTS_STORAGE_SERVER_CACHE
21 #define PLATFORM_SUPPORTS_STORAGE_SERVER_CACHE (PLATFORM_WINDOWS || PLATFORM_ANDROID || PLATFORM_IOS)
24#if PLATFORM_SUPPORTS_STORAGE_SERVER_CACHE && PLATFORM_ANDROID
25 #define PLATFORM_ENABLES_STORAGE_SERVER_CACHE_BY_DEFAULT 1
28#ifndef PLATFORM_ENABLES_STORAGE_SERVER_CACHE_BY_DEFAULT
29 #define PLATFORM_ENABLES_STORAGE_SERVER_CACHE_BY_DEFAULT 0
32#ifndef PLATFORM_HAS_CUSTOM_STORAGE_SERVER_CACHE_STRATEGY
33 #define PLATFORM_HAS_CUSTOM_STORAGE_SERVER_CACHE_STRATEGY 0
36#ifndef HAS_STORAGE_SERVER_RPC_GETCHUNKS_API
37 #define HAS_STORAGE_SERVER_RPC_GETCHUNKS_API 1
78 return bIsUsingZenWorkspace;
102#if HAS_STORAGE_SERVER_RPC_GETCHUNKS_API
131 return CurrentHostAddr;
140 FString CurrentHostAddr;
141 bool bIsUsingZenWorkspace =
false;
144 std::atomic<uint64> AccumulatedBytes = 0;
145 std::atomic<uint32> RequestCount = 0;
146 std::atomic<double> MinRequestThroughput =
DBL_MAX;
147 std::atomic<double> MaxRequestThroughput = -
DBL_MAX;
150 static bool IsPlatformSocketAddress(
const FString Address);
151 static bool IsHostnameAddress(
const FString Address);
154 bool HandshakeRequest();
156 struct FCacheConfiguration
158 bool bEnable =
false;
159 bool bForceInvalidate =
false;
160 int32 CacheSizeKB = 0;
161 float FlushInterval = 0.f;
162 int32 FlushEveryNEntries = 0;
163 int32 AbandonSizeKB = 0;
164 bool bUseSectionedJournal =
false;
165 bool bUseMemoryMappedStorage =
false;
168 void SetupCacheStrategy();
169 bool FinalizeSetupCacheStrategy();
181 class FAsyncQueryLatestServerChunkInfo :
public FRunnable
185 virtual ~FAsyncQueryLatestServerChunkInfo();
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
EStorageServerContentType
Definition StorageServerHttpClient.h:13
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
Definition CompressedBuffer.h:50
Definition IoChunkId.h:64
Definition StorageServerConnection.h:47
~FStorageServerConnection()=default
void PackageStoreRequest(TFunctionRef< void(FPackageStoreEntryResource &&)> Callback)
Definition StorageServerConnection.cpp:228
FIoStatus ReadChunkBatchRequest(const TArray< FChunkBatchRequestEntry > &Chunks, TFunctionRef< void(FIoChunkId Id, EStorageServerContentType MimeType, FIoBuffer Data, const TOptional< uint64 > &ModTag)> OnResponse, bool bSkipData=false)
Definition StorageServerConnection.cpp:467
void ChunkInfosRequest(TFunctionRef< void(FIoChunkId Id, FIoHash RawHash, int64 RawSize)> Callback)
Definition StorageServerConnection.cpp:289
void GetAndResetStats(IStorageServerPlatformFile::FConnectionStats &OutStats)
Definition StorageServerConnection.cpp:695
TIoStatusOr< FString > CreateShare(const FString &WorkspaceId, const FString &SharePath, const FString &Alias)
Definition StorageServerConnection.cpp:203
TIoStatusOr< FIoBuffer > ReadChunkRequest(const FIoChunkId &ChunkId, const uint64 Offset, const uint64 Size, const TOptional< FIoBuffer > OptDestination, const bool bHardwareTargetBuffer)
Definition StorageServerConnection.cpp:366
bool IsConnectedToWorkspace() const
Definition StorageServerConnection.h:76
FStorageServerConnection()=default
void FileManifestRequest(TFunctionRef< void(FIoChunkId Id, FStringView Path, int64 RawSize)> Callback)
Definition StorageServerConnection.cpp:255
int64 ChunkSizeRequest(const FIoChunkId &ChunkId)
Definition StorageServerConnection.cpp:321
void ReadChunkRequestAsync(const FIoChunkId &ChunkId, const uint64 Offset, const uint64 Size, const TOptional< FIoBuffer > OptDestination, const bool bHardwareTargetBuffer, TFunctionRef< void(TIoStatusOr< FIoBuffer > Data)> OnResponse)
Definition StorageServerConnection.cpp:663
FStringView GetHostAddr() const
Definition StorageServerConnection.h:129
TIoStatusOr< Workspaces > GetWorkspaces()
Definition StorageServerConnection.cpp:124
Definition ArrayView.h:139
Definition AssetRegistryState.h:50
Definition IoStatus.h:101
Definition SharedPointer.h:692
Definition StringBuilder.h:79
Definition UniquePtr.h:107
bool IsFinished(const EHttpRequestStatus::Type Value)
Definition IHttpBase.h:49
@ Owner
Definition XmppMultiUserChat.h:25
void Run(FMassRuntimePipeline &RuntimePipeline, FProcessingContext &ProcessingContext)
Definition MassExecutor.cpp:25
UE_AUTORTFM_NOAUTORTFM FWaitState Wait(const void *Address, bool(*CanWait)(void *), void *CanWaitContext, void(*BeforeWait)(void *), void *BeforeWaitContext)
Definition ParkingLot.cpp:504
bool IsCompleted(const HigherLevelTaskType &Prerequisite)
Definition Task.h:351
Definition PackageStore.h:121
Definition StorageServerConnection.h:104
TOptional< uint64 > ModTag
Definition StorageServerConnection.h:108
uint64 Offset
Definition StorageServerConnection.h:106
static FChunkBatchRequestEntry DataRequest(const FIoChunkId &ChunkId, const uint64 Offset, const uint64 Size)
Definition StorageServerConnection.h:110
uint64 Size
Definition StorageServerConnection.h:107
FIoChunkId ChunkId
Definition StorageServerConnection.h:105
static FChunkBatchRequestEntry VerifyModTagRequest(const FIoChunkId &ChunkId, const uint64 ModTag)
Definition StorageServerConnection.h:116
Definition StorageServerConnection.h:57
FString Alias
Definition StorageServerConnection.h:60
FString Path
Definition StorageServerConnection.h:59
FString Id
Definition StorageServerConnection.h:58
Definition StorageServerConnection.h:64
FString Id
Definition StorageServerConnection.h:65
bool AllowShareCreationFromHttp
Definition StorageServerConnection.h:67
FString Root
Definition StorageServerConnection.h:66
TArray< Share > Shares
Definition StorageServerConnection.h:69
Definition StorageServerConnection.h:55
TArray< Workspace > Workspaces
Definition StorageServerConnection.h:71
Definition Optional.h:131