HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Filesystem::IOFile Class Reference

#include <filesystem.h>

+ Inheritance diagram for Filesystem::IOFile:

Public Member Functions

 IOFile (string_view filename, Mode mode)
 
 IOFile (const std::wstring &filename, Mode mode)
 
 IOFile (FILE *file, Mode mode)
 
 ~IOFile () override
 
const char * proxytype () const override
 
void close () override
 
bool seek (int64_t offset) override
 
size_t read (void *buf, size_t size) override
 
size_t write (const void *buf, size_t size) override
 
size_t pread (void *buf, size_t size, int64_t offset) override
 
size_t pwrite (const void *buf, size_t size, int64_t offset) override
 
size_t size () const override
 
void flush () const override
 
FILE * handle () const
 
- Public Member Functions inherited from Filesystem::IOProxy
 IOProxy ()
 
 IOProxy (string_view filename, Mode mode)
 
 IOProxy (const std::wstring &filename, Mode mode)
 
virtual ~IOProxy ()
 
virtual bool opened () const
 
virtual int64_t tell ()
 
Mode mode () const
 
const std::string & filename () const
 
template<class T >
size_t read (span< T > buf)
 
template<class T >
size_t write (span< T > buf)
 
size_t write (string_view buf)
 
bool seek (int64_t offset, int origin)
 
std::string error () const
 
void error (string_view e)
 

Protected Attributes

FILE * m_file = nullptr
 
size_t m_size = 0
 
bool m_auto_close = false
 
std::mutex m_mutex
 
- Protected Attributes inherited from Filesystem::IOProxy
std::string m_filename
 
int64_t m_pos = 0
 
Mode m_mode = Closed
 
std::string m_error
 

Additional Inherited Members

- Public Types inherited from Filesystem::IOProxy
enum  Mode { Closed = 0, Read = 'r', Write = 'w' }
 

Detailed Description

IOProxy subclass for reading or writing (but not both) that wraps C stdio 'FILE'.

Definition at line 476 of file filesystem.h.

Constructor & Destructor Documentation

Filesystem::IOFile::IOFile ( string_view  filename,
Mode  mode 
)
Filesystem::IOFile::IOFile ( const std::wstring &  filename,
Mode  mode 
)
inline

Definition at line 480 of file filesystem.h.

Filesystem::IOFile::IOFile ( FILE *  file,
Mode  mode 
)
Filesystem::IOFile::~IOFile ( )
override

Member Function Documentation

void Filesystem::IOFile::close ( )
overridevirtual

Reimplemented from Filesystem::IOProxy.

void Filesystem::IOFile::flush ( ) const
overridevirtual

Reimplemented from Filesystem::IOProxy.

FILE* Filesystem::IOFile::handle ( ) const
inline

Definition at line 497 of file filesystem.h.

size_t Filesystem::IOFile::pread ( void buf,
size_t  size,
int64_t  offset 
)
overridevirtual

Read size bytes starting at the offset position into buf[], returning the number of bytes successfully read. This function does not alter the current file position. This function is thread-safe against all other concurrent calls to pread() and pwrite(), but not against any other function of IOProxy.

Reimplemented from Filesystem::IOProxy.

const char* Filesystem::IOFile::proxytype ( ) const
inlineoverridevirtual

Implements Filesystem::IOProxy.

Definition at line 486 of file filesystem.h.

size_t Filesystem::IOFile::pwrite ( const void buf,
size_t  size,
int64_t  offset 
)
overridevirtual

Write size bytes from buf[] to file starting at the offset position, returning the number of bytes successfully written. This function does not alter the current file position. This function is thread-safe against all other concurrent calls to pread() and pwrite(), but not against any other function of IOProxy.

Reimplemented from Filesystem::IOProxy.

size_t Filesystem::IOFile::read ( void buf,
size_t  size 
)
overridevirtual

Reimplemented from Filesystem::IOProxy.

bool Filesystem::IOFile::seek ( int64_t  offset)
overridevirtual

Reimplemented from Filesystem::IOProxy.

size_t Filesystem::IOFile::size ( ) const
overridevirtual

Reimplemented from Filesystem::IOProxy.

size_t Filesystem::IOFile::write ( const void buf,
size_t  size 
)
overridevirtual

Reimplemented from Filesystem::IOProxy.

Member Data Documentation

bool Filesystem::IOFile::m_auto_close = false
protected

Definition at line 502 of file filesystem.h.

FILE* Filesystem::IOFile::m_file = nullptr
protected

Definition at line 500 of file filesystem.h.

std::mutex Filesystem::IOFile::m_mutex
protected

Definition at line 503 of file filesystem.h.

size_t Filesystem::IOFile::m_size = 0
protected

Definition at line 501 of file filesystem.h.


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