UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NetworkFileServerConnection.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Misc/CoreMisc.h"
8
10class ITargetPlatform;
11
12
17{
18public:
19
27
32
33public:
34
41 bool ProcessPayload(FArchive& Ar);
42
48 FString GetDescription() const;
49
50protected:
51
59
67
74 // void ConvertServerFilenameToClientFilename(FString& FilenameToConvert);
75
77 void ProcessOpenFile(FArchive& In, FArchive& Out, bool bIsWriting);
78
80 void ProcessReadFile(FArchive& In, FArchive& Out);
81
83 void ProcessWriteFile(FArchive& In, FArchive& Out);
84
86 void ProcessSeekFile(FArchive& In, FArchive& Out);
87
89 void ProcessCloseFile(FArchive& In, FArchive& Out);
90
92 void ProcessGetFileInfo(FArchive& In, FArchive& Out);
93
95 void ProcessMoveFile(FArchive& In, FArchive& Out);
96
98 void ProcessDeleteFile(FArchive& In, FArchive& Out);
99
101 void ProcessCopyFile(FArchive& In, FArchive& Out);
102
104 void ProcessSetTimeStamp(FArchive& In, FArchive& Out);
105
107 void ProcessSetReadOnly(FArchive& In, FArchive& Out);
108
111
114
117
120
123
126
128 bool ProcessGetFileList(FArchive& In, FArchive& Out);
129
131 void ProcessHeartbeat(FArchive& In, FArchive& Out);
132
140 {
141 IFileHandle** OpenFile = OpenFiles.Find(HandleId);
142
143 return OpenFile ? *OpenFile : NULL;
144 }
145
146 bool PackageFile( FString& Filename, FString& TargetFilename, FArchive& Out);
147
154 bool ProcessSyncFile( FArchive& In, FArchive& Out );
155
156
157 virtual bool SendPayload( TArray<uint8> &Out ) = 0;
158
165 void FileModifiedCallback( const FString& Filename );
166
167
168 virtual bool Exec_Runtime(class UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar) override;
169
170
178 FString FixupSandboxPathForClient(const FString& Filename);
179
188
189private:
190
191 // Hold the name of the currently connected platform.
192 FString ConnectedPlatformName;
193
194 // Hold the ip address of the currently connected platform.
195 FString ConnectedIPAddress;
196
197 // Hold the engine directory from the connected platform.
198 FString ConnectedEngineDir;
199
200 // Hold the game directory from the connected platform.
201 FString ConnectedProjectDir;
202
203 // Hold the engine platform extensions directory from the connected platform.
204 FString ConnectedEnginePlatformExtensionsDir;
205
206 // Hold the project platform extensions directory from the connected platform.
207 FString ConnectedProjectPlatformExtensionsDir;
208
209 // Hold the sandbox engine directory for the connected platform
210 FString SandboxEngine;
211
212 // hold the sandbox game directory for the connected platform
213 FString SandboxProject;
214
215 // hold the engine sandbox platform extensions directory for the connected platform
216 FString SandboxEnginePlatformExtensions;
217
218 // hold the project sandbox platform extensions directory for the connected platform
219 FString SandboxProjectPlatformExtensions;
220
221 // Should we send the filenames in lowercase
222 bool bSendLowerCase;
223
224 // Holds the last assigned handle id (0 = invalid).
225 uint64 LastHandleId;
226
227 // Holds the list of files found by the directory watcher.
228 TArray<FString> ModifiedFiles;
229
230 // Holds a critical section to protect the ModifiedFiles array.
231 FCriticalSection ModifiedFilesSection;
232
233 // Holds all currently open file handles.
235
236 // Holds the file interface for local (to the server) files - all file ops MUST go through here, NOT IFileManager.
238
239 // Holds the list of unsolicited files to send in separate packets.
240 TArray<FString> UnsolictedFiles;
241
242 // Holds the list of directories being watched.
243 TArray<FString> WatchedDirectories;
244
245 // Local path to the engine directory
246 FString LocalEngineDir;
247
248 // Absolute local path to the engine directory
249 FString LocalEngineDirAbs;
250
251 // Local path to the project directory
252 FString LocalProjectDir;
253
254 // Absolute local path to the project directory
255 FString LocalProjectDirAbs;
256
257 // Local path to the engine platform extensions directory
258 FString LocalEnginePlatformExtensionsDir;
259
260 // Absolute local path to the engine platform extensions directory
261 FString LocalEnginePlatformExtensionsDirAbs;
262
263 // Local path to the project platform extensions directory
264 FString LocalProjectPlatformExtensionsDir;
265
266 // Absolute local path to the project platform extensions directory
267 FString LocalProjectPlatformExtensionsDirAbs;
268
269 const FNetworkFileDelegateContainer* NetworkFileDelegates;
270
271 // cached copy of the active target platforms (if any)
272 const TArray<ITargetPlatform*>& ActiveTargetPlatforms;
273
274 // connected TargetPlatform object, if ActiveTargetPlatforms existed
275 ITargetPlatform* ConnectedTargetPlatform;
276
277 // custom key-value pair data for the curently connected target platform
278 TMap<FString,FString> ConnectedTargetCustomData;
279
280 // whether to restrict sending package assets from outside the sandbox
281 bool bRestrictPackageAssetsToSandbox;
282
284 //stats
285 double FileRequestDelegateTime;
286 double PackageFileTime;
287 double UnsolicitedFilesTime;
288
289 int32 FileRequestCount;
290 int32 UnsolicitedFilesCount;
291 int32 PackageRequestsSucceeded;
292 int32 PackageRequestsFailed;
293 int32 FileBytesSent;
294
295};
#define NULL
Definition oodle2base.h:134
#define FORCEINLINE
Definition AndroidPlatform.h:140
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
Definition Archive.h:1208
Definition NetworkFileServerConnection.h:17
void ProcessOpenFile(FArchive &In, FArchive &Out, bool bIsWriting)
Definition NetworkFileServerConnection.cpp:456
bool ProcessGetFileList(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:871
void FileModifiedCallback(const FString &Filename)
Definition NetworkFileServerConnection.cpp:1250
void ProcessReportLocalFiles(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:697
FORCEINLINE IFileHandle * FindOpenFile(uint64 HandleId)
Definition NetworkFileServerConnection.h:139
void ProcessSeekFile(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:595
void ProcessWriteFile(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:561
void ProcessCloseFile(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:616
void ProcessHeartbeat(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:1260
void ProcessGetFileInfo(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:637
virtual bool Exec_Runtime(class UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar) override
Definition NetworkFileServerConnection.cpp:1411
virtual ~FNetworkFileServerClientConnection()
Definition NetworkFileServerConnection.cpp:122
void ProcessDeleteDirectory(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:783
FString GetDescription() const
Definition NetworkFileServerConnection.cpp:1405
void ProcessReadFile(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:512
void ProcessToAbsolutePathForRead(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:807
void ProcessSetTimeStamp(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:740
bool ProcessPayload(FArchive &Ar)
Definition NetworkFileServerConnection.cpp:274
FString FixupSandboxPathForClient(const FString &Filename)
Definition NetworkFileServerConnection.cpp:233
void ConvertClientFilenameToServerFilename(FString &FilenameToConvert)
Definition NetworkFileServerConnection.cpp:159
virtual bool SendPayload(TArray< uint8 > &Out)=0
void ProcessDeleteDirectoryRecursively(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:795
bool PackageFile(FString &Filename, FString &TargetFilename, FArchive &Out)
Definition NetworkFileServerConnection.cpp:1290
void ProcessToAbsolutePathForWrite(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:819
bool ProcessSyncFile(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:1364
void ProcessCreateDirectory(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:771
void ProcessDeleteFile(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:685
void ProcessMoveFile(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:670
TMap< FString, FDateTime > FixupSandboxPathsForClient(const TMap< FString, FDateTime > &SandboxPaths)
Definition NetworkFileServerConnection.cpp:214
void ProcessSetReadOnly(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:757
void ConvertLocalFilenameToServerFilename(FString &FilenameToConvert)
Definition NetworkFileServerConnection.cpp:182
void ProcessCopyFile(FArchive &In, FArchive &Out)
Definition NetworkFileServerConnection.cpp:725
Definition OutputDevice.h:133
Definition IPlatformFileSandboxWrapper.h:25
Definition CoreMisc.h:28
Definition GenericPlatformFile.h:117
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition UniquePtr.h:107
Definition World.h:918
Definition INetworkFileSystemModule.h:51
Definition INetworkFileSystemModule.h:84