Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
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: