Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
XFILE::CPipeFile Class Reference

#include <PipeFile.h>

Inheritance diagram for XFILE::CPipeFile:
XFILE::IFile XFILE::IPipeListener

Public Member Functions

 CPipeFile ()
 
 ~CPipeFile () override
 
int64_t GetPosition () override
 
int64_t GetLength () override
 
virtual void SetLength (int64_t len)
 
bool Open (const CURL &url) override
 
bool Exists (const CURL &url) override
 
int Stat (const CURL &url, struct __stat64 *buffer) override
 
int Stat (struct __stat64 *buffer) override
 
ssize_t Read (void *lpBuf, size_t uiBufSize) override
 
ssize_t Write (const void *lpBuf, size_t uiBufSize) override
 
int64_t Seek (int64_t iFilePosition, int iWhence=SEEK_SET) override
 
void Close () override
 
void Flush () override
 
virtual int64_t GetAvailableRead ()
 
bool OpenForWrite (const CURL &url, bool bOverWrite=false) override
 
bool Delete (const CURL &url) override
 
bool Rename (const CURL &url, const CURL &urlnew) override
 
int IoControl (EIoControl request, void *param) override
 
std::string GetName () const
 
void OnPipeOverFlow () override
 
void OnPipeUnderFlow () override
 
void AddListener (IPipeListener *l)
 
void RemoveListener (IPipeListener *l)
 
void SetEof ()
 
bool IsEof ()
 
bool IsEmpty ()
 
bool IsClosed ()
 
void SetOpenThreshold (int threshold)
 
- Public Member Functions inherited from XFILE::IFile
 IFile ()
 
virtual ~IFile ()
 
virtual bool ReOpen (const CURL &url)
 
virtual bool ReadString (char *szLine, int iLineLength)
 
virtual int Truncate (int64_t size)
 
virtual int GetChunkSize ()
 
virtual double GetDownloadSpeed ()
 
virtual bool SetHidden (const CURL &url, bool hidden)
 
virtual const std::string GetProperty (XFILE::FileProperty type, const std::string &name="") const
 
virtual const std::vector< std::string > GetPropertyValues (XFILE::FileProperty type, const std::string &name="") const
 
- Public Member Functions inherited from XFILE::IPipeListener
virtual ~IPipeListener ()=default
 

Protected Attributes

int64_t m_pos = 0
 
int64_t m_length = -1
 
XFILE::Pipem_pipe
 
CCriticalSection m_lock
 
std::vector< XFILE::IPipeListener * > m_listeners
 

Constructor & Destructor Documentation

◆ CPipeFile()

CPipeFile::CPipeFile ( )

◆ ~CPipeFile()

CPipeFile::~CPipeFile ( )
override

Member Function Documentation

◆ AddListener()

void CPipeFile::AddListener ( IPipeListener * l)

◆ Close()

void CPipeFile::Close ( )
overridevirtual

Implements XFILE::IFile.

◆ Delete()

bool CPipeFile::Delete ( const CURL & url)
overridevirtual

Reimplemented from XFILE::IFile.

◆ Exists()

bool CPipeFile::Exists ( const CURL & url)
overridevirtual

Implements XFILE::IFile.

◆ Flush()

void CPipeFile::Flush ( )
overridevirtual

Reimplemented from XFILE::IFile.

◆ GetAvailableRead()

int64_t CPipeFile::GetAvailableRead ( )
virtual

◆ GetLength()

int64_t CPipeFile::GetLength ( )
overridevirtual

Implements XFILE::IFile.

◆ GetName()

std::string CPipeFile::GetName ( ) const

◆ GetPosition()

int64_t CPipeFile::GetPosition ( )
overridevirtual

Implements XFILE::IFile.

◆ IoControl()

int CPipeFile::IoControl ( EIoControl request,
void * param )
overridevirtual

Reimplemented from XFILE::IFile.

◆ IsClosed()

bool CPipeFile::IsClosed ( )

◆ IsEmpty()

bool CPipeFile::IsEmpty ( )

◆ IsEof()

bool CPipeFile::IsEof ( )

◆ OnPipeOverFlow()

void CPipeFile::OnPipeOverFlow ( )
overridevirtual

Implements XFILE::IPipeListener.

◆ OnPipeUnderFlow()

void CPipeFile::OnPipeUnderFlow ( )
overridevirtual

Implements XFILE::IPipeListener.

◆ Open()

bool CPipeFile::Open ( const CURL & url)
overridevirtual

Implements XFILE::IFile.

◆ OpenForWrite()

bool CPipeFile::OpenForWrite ( const CURL & url,
bool bOverWrite = false )
overridevirtual

Reimplemented from XFILE::IFile.

◆ Read()

ssize_t CPipeFile::Read ( void * bufPtr,
size_t bufSize )
overridevirtual

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

Implements XFILE::IFile.

◆ RemoveListener()

void CPipeFile::RemoveListener ( IPipeListener * l)

◆ Rename()

bool CPipeFile::Rename ( const CURL & url,
const CURL & urlnew )
overridevirtual

Reimplemented from XFILE::IFile.

◆ Seek()

int64_t CPipeFile::Seek ( int64_t iFilePosition,
int iWhence = SEEK_SET )
overridevirtual

Implements XFILE::IFile.

◆ SetEof()

void CPipeFile::SetEof ( )

◆ SetLength()

void CPipeFile::SetLength ( int64_t len)
virtual

◆ SetOpenThreshold()

void CPipeFile::SetOpenThreshold ( int threshold)

◆ Stat() [1/2]

int CPipeFile::Stat ( const CURL & url,
struct __stat64 * buffer )
overridevirtual

Fills struct __stat64 with information about file specified by url. 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
urlspecifies requested file
bufferpointer to __stat64 buffer to receive information about file
Returns
zero of success, -1 otherwise.

Implements XFILE::IFile.

◆ Stat() [2/2]

int CPipeFile::Stat ( struct __stat64 * buffer)
overridevirtual

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.

Reimplemented from XFILE::IFile.

◆ Write()

ssize_t CPipeFile::Write ( const void * bufPtr,
size_t bufSize )
overridevirtual

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

Reimplemented from XFILE::IFile.

Member Data Documentation

◆ m_length

int64_t XFILE::CPipeFile::m_length = -1
protected

◆ m_listeners

std::vector<XFILE::IPipeListener *> XFILE::CPipeFile::m_listeners
protected

◆ m_lock

CCriticalSection XFILE::CPipeFile::m_lock
protected

◆ m_pipe

XFILE::Pipe* XFILE::CPipeFile::m_pipe
protected

◆ m_pos

int64_t XFILE::CPipeFile::m_pos = 0
protected

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