|
std::unique_ptr< FileHandler > | makeNew () const override |
| Make a new DiskFile object, with a default state.
|
|
const string & | getFileHandlerName () const override |
|
int | openSpec (const FileSpec &fileSpec) override |
| Open a file in read-only mode.
|
|
bool | isOpened () const override |
| Tell if a file is actually open.
|
|
int | create (const string &newFilePath, const map< string, string > &options={}) override |
| Create a new file.
|
|
void | forgetFurtherChunks (int64_t fileSize) override |
| Call this method to forget any chunk beyond this file size.
|
|
int64_t | getTotalSize () const override |
| Get the total size of all the chunks considered.
|
|
vector< std::pair< string, int64_t > > | getFileChunks () const override |
| Get the list of chunks, path + size.
|
|
int | close () override |
| Close the file.
|
|
int | skipForward (int64_t offset) override |
| Skip a number of bytes further in the file, in a chunk aware way.
|
|
int | setPos (int64_t offset) override |
| Set the file position at an arbitrary position, in a chunk aware way.
|
|
int | read (void *buffer, size_t length) override |
| Read a number of bytes, in a chunk aware way.
|
|
template<typename T , std::enable_if_t< std::is_trivially_copyable< T >::value, int > = 0> |
int | read (T &object) |
| Helper to read trivially copyable objects, in a chunk aware way.
|
|
size_t | getLastRWSize () const override |
| Get the number of bytes actually moved by the last read or write operation.
|
|
bool | reopenForUpdatesSupported () const override |
| Tell if modifying files is supported by this FileHandler implementation.
|
|
int | reopenForUpdates () override |
| Switch from read-only to read-write mode.
|
|
bool | isReadOnly () const override |
| Find out if the file is in read-only mode.
|
|
int | write (const void *buffer, size_t length) override |
| Write to the current chunk, possibly expanding it.
|
|
template<typename T , std::enable_if_t< std::is_trivially_copyable< T >::value, int > = 0> |
int | write (const T &object) |
| Helper for trivially copyable objects.
|
|
int | overwrite (const void *buffer, size_t length) override |
|
template<typename T , std::enable_if_t< std::is_trivially_copyable< T >::value, int > = 0> |
int | overwrite (const T &object) |
| Helper for trivially copyable objects.
|
|
int | addChunk () override |
| Append a new chunk to the current file.
|
|
int | truncate () override |
| Truncate chunk to the current file position. Use with care.
|
|
int | getLastError () const override |
| Get the last error code. 0 means no error.
|
|
bool | isEof () const override |
| Tell if we are at the end of the last chunk.
|
|
int64_t | getPos () const override |
| Get the absolute position in the file, in a chunk aware way.
|
|
int64_t | getChunkPos () const override |
| Get position in the current chunk.
|
|
int | getChunkRange (int64_t &outChunkOffset, int64_t &outChunkSize) const override |
| Get range of the current chunk.
|
|
bool | getCurrentChunk (string &outChunkPath, size_t &outChunkIndex) const override |
| Get the path of the current chunk, or an empty string if no chunk is open.
|
|
bool | isRemoteFileSystem () const override |
|
template<typename T , std::enable_if_t< std::is_trivially_copyable< T >::value, int > = 0> |
int | writeZstdFile (const string &path, const T &object) |
|
template<typename T , std::enable_if_t< std::is_trivially_copyable< T >::value, int > = 0> |
int | writeZstdFile (const string &path, const vector< T > &v) |
|
template<typename T , std::enable_if_t< std::is_trivially_copyable< T >::value, int > = 0> |
int | readZstdFile (const string &path, T &object) |
|
int | parseUri (FileSpec &inOutFileSpec, size_t colonIndex) const override |
|
const string & | staticName () |
|
Public Member Functions inherited from vrs::WriteFileHandler |
virtual int | create (const FileSpec &spec) |
|
virtual int | createSplitFile (const FileSpec &spec, const string &initialFilePath) |
|
virtual void | addSplitHead (MAYBE_UNUSED FileSpec &inOutSpec) |
|
template<typename T , std::enable_if_t< std::is_trivially_copyable< T >::value, int > = 0> |
int | write (const T &object) |
| Helper for trivially copyable objects.
|
|
template<typename T , std::enable_if_t< std::is_trivially_copyable< T >::value, int > = 0> |
int | overwrite (const T &object) |
| Helper for trivially copyable objects.
|
|
Public Member Functions inherited from vrs::FileHandler |
virtual const string & | getWriteFileHandlerName () const |
|
virtual int | open (const string &filePath) |
|
int | delegateOpen (const FileSpec &fileSpec, unique_ptr< FileHandler > &outNewDelegate) override |
|
virtual bool | isAvailableOrPrefetch (MAYBE_UNUSED size_t length) |
|
template<typename T , std::enable_if_t< std::is_trivially_copyable< T >::value, int > = 0> |
int | read (T &object) |
| Helper to read trivially copyable objects, in a chunk aware way.
|
|
virtual bool | setCachingStrategy (CachingStrategy) |
|
virtual CachingStrategy | getCachingStrategy () const |
|
virtual bool | prefetchReadSequence (MAYBE_UNUSED const vector< std::pair< size_t, size_t > > &sequence, MAYBE_UNUSED bool clearSequence=true) |
|
virtual bool | setStatsCallback (const CacheStatsCallbackFunction &) |
|
virtual bool | purgeCache () |
|
bool | isFileHandlerMatch (const FileSpec &fileSpec) const |
|
virtual bool | showProgress () const |
| Tell if the file handler is probably slow, and extra progress information might be useful.
|
|
virtual int | parseUri (FileSpec &inOutFileSpec, MAYBE_UNUSED size_t colonIndex) const |
|
|
static const std::string & | staticName () |
|
static int | writeZstdFile (const string &path, const void *data, size_t dataSize) |
|
static int | writeZstdFile (const string &path, const string &string) |
|
static int | readZstdFile (const string &path, vector< char > &outContent) |
| Read a compressed buffer or a string (automatically adjusts the size)
|
|
static int | readZstdFile (const string &path, string &outString) |
|
static int | readZstdFile (const string &path, void *data, size_t dataSize) |
| Read a compressed buffer of an exact size, fails if the size isn't perfectly right.
|
|
static string | readTextFile (const string &path) |
|
static int | writeTextFile (const string &path, const string &text) |
|
Static Public Member Functions inherited from vrs::WriteFileHandler |
static unique_ptr< WriteFileHandler > | make (const string &fileHandlerName) |
| Create a new WriteFileHandler from a name.
|
|
Static Public Member Functions inherited from vrs::FileHandler |
static unique_ptr< FileHandler > | makeOpen (const string &filePath) |
| Open a file in read-only mode. Returns an open file handler, or nullptr on error.
|
|
static unique_ptr< FileHandler > | makeOpen (const FileSpec &fileSpec) |
|
template<class FileChunk>
class vrs::DiskFileT< FileChunk >
FileHandler implementation for disk files, with chunked file support.