17 #include "IFileTypes.h" 26 #include "PlatformDefs.h" 35 class CFileStreamBuffer;
43 bool CURLCreate(
const std::string &url);
44 bool CURLAddOption(XFILE::CURLOPTIONTYPE type,
const char* name,
const char * value);
45 bool CURLOpen(
unsigned int flags);
58 bool Open(
const CURL& file,
const unsigned int flags = 0);
59 bool Open(
const std::string& strFileName,
const unsigned int flags = 0);
61 bool OpenForWrite(
const CURL& file,
bool bOverWrite =
false);
62 bool OpenForWrite(
const std::string& strFileName,
bool bOverWrite =
false);
64 ssize_t LoadFile(
const CURL& file, std::vector<uint8_t>& outputBuffer);
74 ssize_t
Read(
void* bufPtr,
size_t bufSize);
75 bool ReadString(
char *szLine,
int iLineLength);
84 ssize_t
Write(
const void* bufPtr,
size_t bufSize);
86 int64_t Seek(int64_t iFilePosition,
int iWhence = SEEK_SET);
87 int Truncate(int64_t iSize);
88 int64_t GetPosition()
const;
92 const std::string GetProperty(XFILE::FileProperty type,
const std::string &name =
"")
const;
93 const std::vector<std::string> GetPropertyValues(XFILE::FileProperty type,
const std::string &name =
"")
const;
94 ssize_t LoadFile(
const std::string& filename, std::vector<uint8_t>& outputBuffer);
96 static int DetermineChunkSize(
const int srcChunkSize,
const int reqChunkSize);
98 const std::unique_ptr<BitstreamStats>& GetBitstreamStats()
const {
return m_bitStreamStats; }
100 int IoControl(EIoControl request,
void* param);
102 IFile* GetImplementation()
const {
return m_pFile.get(); }
105 static bool Exists(
const CURL& file,
bool bUseCache =
true);
106 static bool Delete(
const CURL& file);
119 static int Stat(
const CURL& file,
struct __stat64* buffer);
120 static bool Rename(
const CURL& file,
const CURL& urlNew);
122 static bool SetHidden(
const CURL& file,
bool hidden);
125 static bool Exists(
const std::string& strFileName,
bool bUseCache =
true);
138 static int Stat(
const std::string& strFileName,
struct __stat64* buffer);
150 int Stat(
struct __stat64 *buffer);
151 static bool Delete(
const std::string& strFileName);
152 static bool Rename(
const std::string& strFileName,
const std::string& strNewFileName);
153 static bool Copy(
const std::string& strFileName,
const std::string& strDest,
XFILE::IFileCallback* pCallback = NULL,
void* pContext = NULL);
154 static bool SetHidden(
const std::string& fileName,
bool hidden);
155 double GetDownloadSpeed();
158 unsigned int m_flags = 0;
160 std::unique_ptr<IFile> m_pFile;
161 std::unique_ptr<CFileStreamBuffer> m_pBuffer;
162 std::unique_ptr<BitstreamStats> m_bitStreamStats;
167 :
public std::streambuf
173 void Attach(
IFile *file);
177 int_type underflow()
override;
178 std::streamsize showmanyc()
override;
179 pos_type seekoff(off_type, std::ios_base::seekdir,std::ios_base::openmode = std::ios_base::in | std::ios_base::out)
override;
180 pos_type seekpos(pos_type, std::ios_base::openmode = std::ios_base::in | std::ios_base::out)
override;
190 :
public std::istream
196 bool Open(
const std::string& filename);
203 std::unique_ptr<IFile> m_file;
ssize_t Write(const void *bufPtr, size_t bufSize)
Attempt to write bufSize bytes from buffer bufPtr into currently opened file.
Definition: File.cpp:808
static int Stat(const CURL &file, struct __stat64 *buffer)
Fills struct __stat64 with information about file specified by filename For st_mode function will set...
Definition: File.cpp:517
Definition: BitstreamStats.h:13
ssize_t Read(void *bufPtr, size_t bufSize)
Attempt to read bufSize bytes from currently opened file into buffer bufPtr.
Definition: File.cpp:574
bool Open(const CURL &file, const unsigned int flags=0)
Attempt to open an IFile instance.
Definition: File.cpp:245
Definition: IFileTypes.h:102