Plasma Engine  2.0
Loading...
Searching...
No Matches
FileserveDataDir.h
1#pragma once
2
3#include <FileservePlugin/Client/FileserveClient.h>
4#include <Foundation/Communication/RemoteInterface.h>
5#include <Foundation/Containers/HybridArray.h>
6#include <Foundation/Containers/Map.h>
7#include <Foundation/IO/FileSystem/DataDirTypeFolder.h>
8#include <Foundation/IO/FileSystem/Implementation/DataDirType.h>
9#include <Foundation/IO/OSFile.h>
10#include <Foundation/Types/UniquePtr.h>
11
12namespace plDataDirectory
13{
15 {
16 public:
17 FileserveDataDirectoryReader(plInt32 iDataDirUserData);
18
19 protected:
20 virtual plResult InternalOpen(plFileShareMode::Enum FileShareMode) override;
21 };
22
24 {
25 protected:
26 virtual void InternalClose() override;
27 };
28
30 class PL_FILESERVEPLUGIN_DLL FileserveType : public FolderType
31 {
32 public:
34 static plDataDirectoryType* Factory(plStringView sDataDirectory, plStringView sGroup, plStringView sRootName, plDataDirUsage usage);
35
37 virtual void ReloadExternalConfigs() override;
38
40 void FinishedWriting(FolderWriter* pWriter);
41
42 protected:
43 virtual plDataDirectoryReader* OpenFileToRead(plStringView sFile, plFileShareMode::Enum FileShareMode, bool bSpecificallyThisDataDir) override;
44 virtual plDataDirectoryWriter* OpenFileToWrite(plStringView sFile, plFileShareMode::Enum FileShareMode) override;
45 virtual plResult InternalInitializeDataDirectory(plStringView sDirectory) override;
46 virtual void RemoveDataDirectory() override;
47 virtual void DeleteFile(plStringView sFile) override;
48 virtual bool ExistsFile(plStringView sFile, bool bOneSpecificDataDir) override;
50 virtual plResult GetFileStats(plStringView sFileOrFolder, bool bOneSpecificDataDir, plFileStats& out_Stats) override;
51 virtual FolderReader* CreateFolderReader() const override;
52 virtual FolderWriter* CreateFolderWriter() const override;
53
54 plUInt16 m_uiDataDirID = 0xffff;
55 plString128 m_sFileserveCacheMetaFolder;
56 };
57} // namespace plDataDirectory
Definition FileserveDataDir.h:15
virtual plResult InternalOpen(plFileShareMode::Enum FileShareMode) override
This function must be implemented by the derived class.
Definition FileserveDataDir.cpp:156
Definition FileserveDataDir.h:24
virtual void InternalClose() override
This function must be implemented by the derived class.
Definition FileserveDataDir.cpp:161
A data directory type to handle access to files that are served from a network host.
Definition FileserveDataDir.h:31
Handles reading from ordinary files.
Definition DataDirTypeFolder.h:76
A data directory type to handle access to ordinary files.
Definition DataDirTypeFolder.h:18
Handles writing to ordinary files.
Definition DataDirTypeFolder.h:102
A base class for readers that handle reading from a (virtual) file inside a data directory.
Definition DataDirType.h:173
The base class for all data directory types.
Definition DataDirType.h:37
A base class for writers that handle writing to a (virtual) file inside a data directory.
Definition DataDirType.h:212
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
Enum
Definition FileEnums.h:7
Holds the stats for a file.
Definition OSFile.h:34
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54