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();
   173   bool ShouldUseStreamBuffer(
const CURL& url);
   175   unsigned int m_flags = 0;
   177   std::unique_ptr<IFile> m_pFile;
   178   std::unique_ptr<CFileStreamBuffer> m_pBuffer;
   179   std::unique_ptr<BitstreamStats> m_bitStreamStats;
   184   : 
public std::streambuf
   190   void Attach(
IFile *file);
   194   int_type underflow() 
override;
   195   std::streamsize showmanyc() 
override;
   196   pos_type seekoff(off_type, std::ios_base::seekdir,std::ios_base::openmode = std::ios_base::in | std::ios_base::out) 
override;
   197   pos_type seekpos(pos_type, std::ios_base::openmode = std::ios_base::in | std::ios_base::out) 
override;
   207   : 
public std::istream
   213   bool Open(
const std::string& filename);
   220   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:824
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:533
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:590
bool Open(const CURL &file, const unsigned int flags=0)
Attempt to open an IFile instance. 
Definition: File.cpp:245
Definition: IFileTypes.h:112