Kodi Docs 20.0
Kodi is an open source media player and entertainment hub.
XFILE::CFile Class Reference

#include <File.h>

Inheritance diagram for XFILE::CFile:
CTempFile

Public Member Functions

 CFile ()
 
 ~CFile ()
 
bool CURLCreate (const std::string &url)
 
bool CURLAddOption (XFILE::CURLOPTIONTYPE type, const char *name, const char *value)
 
bool CURLOpen (unsigned int flags)
 
bool Open (const CURL &file, const unsigned int flags=0)
 
bool Open (const std::string &strFileName, const unsigned int flags=0)
 
bool OpenForWrite (const CURL &file, bool bOverWrite=false)
 
bool OpenForWrite (const std::string &strFileName, bool bOverWrite=false)
 
ssize_t LoadFile (const CURL &file, std::vector< uint8_t > &outputBuffer)
 
ssize_t Read (void *bufPtr, size_t bufSize)
 
bool ReadString (char *szLine, int iLineLength)
 
ssize_t Write (const void *bufPtr, size_t bufSize)
 
void Flush ()
 
int64_t Seek (int64_t iFilePosition, int iWhence=SEEK_SET)
 
int Truncate (int64_t iSize)
 
int64_t GetPosition () const
 
int64_t GetLength ()
 
void Close ()
 
int GetChunkSize ()
 
const std::string GetProperty (XFILE::FileProperty type, const std::string &name="") const
 
const std::vector< std::string > GetPropertyValues (XFILE::FileProperty type, const std::string &name="") const
 
ssize_t LoadFile (const std::string &filename, std::vector< uint8_t > &outputBuffer)
 
const std::unique_ptr< BitstreamStats > & GetBitstreamStats () const
 
int IoControl (EIoControl request, void *param)
 
IFileGetImplementation () const
 
int Stat (struct __stat64 *buffer)
 
double GetDownloadSpeed ()
 

Static Public Member Functions

static int DetermineChunkSize (const int srcChunkSize, const int reqChunkSize)
 
static bool Exists (const CURL &file, bool bUseCache=true)
 
static bool Delete (const CURL &file)
 
static int Stat (const CURL &file, struct __stat64 *buffer)
 
static bool Rename (const CURL &file, const CURL &urlNew)
 
static bool Copy (const CURL &file, const CURL &dest, XFILE::IFileCallback *pCallback=NULL, void *pContext=NULL)
 
static bool SetHidden (const CURL &file, bool hidden)
 
static bool Exists (const std::string &strFileName, bool bUseCache=true)
 
static int Stat (const std::string &strFileName, struct __stat64 *buffer)
 
static bool Delete (const std::string &strFileName)
 
static bool Rename (const std::string &strFileName, const std::string &strNewFileName)
 
static bool Copy (const std::string &strFileName, const std::string &strDest, XFILE::IFileCallback *pCallback=NULL, void *pContext=NULL)
 
static bool SetHidden (const std::string &fileName, bool hidden)
 

Constructor & Destructor Documentation

◆ CFile()

CFile::CFile ( )
default

◆ ~CFile()

CFile::~CFile ( )

Member Function Documentation

◆ Close()

void CFile::Close ( )

◆ Copy() [1/2]

bool CFile::Copy ( const CURL file,
const CURL dest,
XFILE::IFileCallback pCallback = NULL,
void pContext = NULL 
)
static

◆ Copy() [2/2]

bool CFile::Copy ( const std::string &  strFileName,
const std::string &  strDest,
XFILE::IFileCallback pCallback = NULL,
void pContext = NULL 
)
static

◆ CURLAddOption()

bool CFile::CURLAddOption ( XFILE::CURLOPTIONTYPE  type,
const char *  name,
const char *  value 
)

◆ CURLCreate()

bool CFile::CURLCreate ( const std::string &  url)

◆ CURLOpen()

bool CFile::CURLOpen ( unsigned int  flags)

◆ Delete() [1/2]

bool CFile::Delete ( const CURL file)
static

◆ Delete() [2/2]

bool CFile::Delete ( const std::string &  strFileName)
static

◆ DetermineChunkSize()

int CFile::DetermineChunkSize ( const int  srcChunkSize,
const int  reqChunkSize 
)
static

◆ Exists() [1/2]

bool CFile::Exists ( const CURL file,
bool  bUseCache = true 
)
static

◆ Exists() [2/2]

bool CFile::Exists ( const std::string &  strFileName,
bool  bUseCache = true 
)
static

◆ Flush()

void CFile::Flush ( )

◆ GetBitstreamStats()

const std::unique_ptr< BitstreamStats > & XFILE::CFile::GetBitstreamStats ( ) const
inline

◆ GetChunkSize()

int CFile::GetChunkSize ( )

◆ GetDownloadSpeed()

double CFile::GetDownloadSpeed ( )

◆ GetImplementation()

IFile * XFILE::CFile::GetImplementation ( ) const
inline

◆ GetLength()

int64_t CFile::GetLength ( )

◆ GetPosition()

int64_t CFile::GetPosition ( ) const

◆ GetProperty()

const std::string CFile::GetProperty ( XFILE::FileProperty  type,
const std::string &  name = "" 
) const

◆ GetPropertyValues()

const std::vector< std::string > CFile::GetPropertyValues ( XFILE::FileProperty  type,
const std::string &  name = "" 
) const

◆ IoControl()

int CFile::IoControl ( EIoControl  request,
void param 
)

◆ LoadFile() [1/2]

ssize_t CFile::LoadFile ( const CURL file,
std::vector< uint8_t > &  outputBuffer 
)

◆ LoadFile() [2/2]

ssize_t CFile::LoadFile ( const std::string &  filename,
std::vector< uint8_t > &  outputBuffer 
)

◆ Open() [1/2]

bool CFile::Open ( const CURL file,
const unsigned int  flags = 0 
)

Attempt to open an IFile instance.

Parameters
filereference to CCurl file description
flagssee IFileTypes.h
Returns
true on success, false otherwise

Remarks: Open can only be called once. Calling Open() on an already opened file will fail except if flag READ_REOPEN is set and the underlying file has an implementation of ReOpen().

◆ Open() [2/2]

bool CFile::Open ( const std::string &  strFileName,
const unsigned int  flags = 0 
)

◆ OpenForWrite() [1/2]

bool CFile::OpenForWrite ( const CURL file,
bool  bOverWrite = false 
)

◆ OpenForWrite() [2/2]

bool CFile::OpenForWrite ( const std::string &  strFileName,
bool  bOverWrite = false 
)

◆ Read()

ssize_t CFile::Read ( void bufPtr,
size_t  bufSize 
)

Attempt to read bufSize bytes from currently opened file into buffer bufPtr.

Parameters
bufPtrpointer to buffer
bufSizesize of the buffer
Returns
number of successfully read bytes if any bytes were read and stored in buffer, zero if no bytes are available to read (end of file was reached) or undetectable error occur, -1 in case of any explicit error

◆ ReadString()

bool CFile::ReadString ( char *  szLine,
int  iLineLength 
)

◆ Rename() [1/2]

bool CFile::Rename ( const CURL file,
const CURL urlNew 
)
static

◆ Rename() [2/2]

bool CFile::Rename ( const std::string &  strFileName,
const std::string &  strNewFileName 
)
static

◆ Seek()

int64_t CFile::Seek ( int64_t  iFilePosition,
int  iWhence = SEEK_SET 
)

◆ SetHidden() [1/2]

bool CFile::SetHidden ( const CURL file,
bool  hidden 
)
static

◆ SetHidden() [2/2]

bool CFile::SetHidden ( const std::string &  fileName,
bool  hidden 
)
static

◆ Stat() [1/3]

int CFile::Stat ( const CURL file,
struct __stat64 buffer 
)
static

Fills struct __stat64 with information about file specified by filename For st_mode function will set correctly _S_IFDIR (directory) flag and may set _S_IREAD (read permission), _S_IWRITE (write permission) flags if such information is available. Function may set st_size (file size), st_atime, st_mtime, st_ctime (access, modification, creation times). Any other flags and members of __stat64 that didn't updated with actual file information will be set to zero (st_nlink can be set ether to 1 or zero).

Parameters
filespecifies requested file
bufferpointer to __stat64 buffer to receive information about file
Returns
zero of success, -1 otherwise.

◆ Stat() [2/3]

int CFile::Stat ( const std::string &  strFileName,
struct __stat64 buffer 
)
static

Fills struct __stat64 with information about file specified by filename For st_mode function will set correctly _S_IFDIR (directory) flag and may set _S_IREAD (read permission), _S_IWRITE (write permission) flags if such information is available. Function may set st_size (file size), st_atime, st_mtime, st_ctime (access, modification, creation times). Any other flags and members of __stat64 that didn't updated with actual file information will be set to zero (st_nlink can be set ether to 1 or zero).

Parameters
strFileNamespecifies requested file
bufferpointer to __stat64 buffer to receive information about file
Returns
zero of success, -1 otherwise.

◆ Stat() [3/3]

int CFile::Stat ( struct __stat64 buffer)

Fills struct __stat64 with information about currently open file For st_mode function will set correctly _S_IFDIR (directory) flag and may set _S_IREAD (read permission), _S_IWRITE (write permission) flags if such information is available. Function may set st_size (file size), st_atime, st_mtime, st_ctime (access, modification, creation times). Any other flags and members of __stat64 that didn't updated with actual file information will be set to zero (st_nlink can be set ether to 1 or zero).

Parameters
bufferpointer to __stat64 buffer to receive information about file
Returns
zero of success, -1 otherwise.

◆ Truncate()

int CFile::Truncate ( int64_t  iSize)

◆ Write()

ssize_t CFile::Write ( const void bufPtr,
size_t  bufSize 
)

Attempt to write bufSize bytes from buffer bufPtr into currently opened file.

Parameters
bufPtrpointer to buffer
bufSizesize of the buffer
Returns
number of successfully written bytes if any bytes were written, zero if no bytes were written and no detectable error occur, -1 in case of any explicit error

The documentation for this class was generated from the following files: