Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
Loading...
Searching...
No Matches
duckdb::CompressedFileSystem Class Referenceabstract
Inheritance diagram for duckdb::CompressedFileSystem:
Collaboration diagram for duckdb::CompressedFileSystem:

Public Member Functions

DUCKDB_API int64_t Read (FileHandle &handle, void *buffer, int64_t nr_bytes) override
 
DUCKDB_API int64_t Write (FileHandle &handle, void *buffer, int64_t nr_bytes) override
 Write nr_bytes from the buffer into the file, moving the file pointer forward by nr_bytes.
 
DUCKDB_API void Reset (FileHandle &handle) override
 Reset a file to the beginning (equivalent to Seek(handle, 0) for simple files)
 
DUCKDB_API int64_t GetFileSize (FileHandle &handle) override
 Returns the file size of a file handle, returns -1 on error.
 
DUCKDB_API bool OnDiskFile (FileHandle &handle) override
 
DUCKDB_API bool CanSeek () override
 Whether or not we can seek into the file.
 
virtual DUCKDB_API unique_ptr< StreamWrapperCreateStream ()=0
 
virtual DUCKDB_API idx_t InBufferSize ()=0
 
virtual DUCKDB_API idx_t OutBufferSize ()=0
 
- Public Member Functions inherited from duckdb::FileSystem
virtual DUCKDB_API unique_ptr< FileHandleOpenFile (const string &path, FileOpenFlags flags, optional_ptr< FileOpener > opener=nullptr)
 
DUCKDB_API unique_ptr< FileHandleOpenFile (const OpenFileInfo &path, FileOpenFlags flags, optional_ptr< FileOpener > opener=nullptr)
 
virtual DUCKDB_API void Read (FileHandle &handle, void *buffer, int64_t nr_bytes, idx_t location)
 
virtual DUCKDB_API void Write (FileHandle &handle, void *buffer, int64_t nr_bytes, idx_t location)
 
virtual DUCKDB_API bool Trim (FileHandle &handle, idx_t offset_bytes, idx_t length_bytes)
 
virtual DUCKDB_API timestamp_t GetLastModifiedTime (FileHandle &handle)
 Returns the file last modified time of a file handle, returns timespec with zero on all attributes on error.
 
virtual DUCKDB_API string GetVersionTag (FileHandle &handle)
 
virtual DUCKDB_API FileType GetFileType (FileHandle &handle)
 Returns the file type of the attached handle.
 
virtual DUCKDB_API FileMetadata Stats (FileHandle &handle)
 Returns the file stats of the attached handle.
 
virtual DUCKDB_API void Truncate (FileHandle &handle, int64_t new_size)
 
virtual DUCKDB_API bool DirectoryExists (const string &directory, optional_ptr< FileOpener > opener=nullptr)
 Check if a directory exists.
 
virtual DUCKDB_API void CreateDirectory (const string &directory, optional_ptr< FileOpener > opener=nullptr)
 Create a directory if it does not exist.
 
virtual DUCKDB_API void CreateDirectoriesRecursive (const string &path, optional_ptr< FileOpener > opener=nullptr)
 Helper function that uses DirectoryExists and CreateDirectory to ensure all directories in path are created.
 
virtual DUCKDB_API void RemoveDirectory (const string &directory, optional_ptr< FileOpener > opener=nullptr)
 Recursively remove a directory and all files in it.
 
virtual DUCKDB_API bool ListFiles (const string &directory, const std::function< void(const string &, bool)> &callback, FileOpener *opener=nullptr)
 List files in a directory, invoking the callback method for each one with (filename, is_dir)
 
DUCKDB_API bool ListFiles (const string &directory, const std::function< void(OpenFileInfo &info)> &callback, optional_ptr< FileOpener > opener=nullptr)
 
virtual DUCKDB_API void MoveFile (const string &source, const string &target, optional_ptr< FileOpener > opener=nullptr)
 
virtual DUCKDB_API bool FileExists (const string &filename, optional_ptr< FileOpener > opener=nullptr)
 Check if a file exists.
 
virtual DUCKDB_API bool IsPipe (const string &filename, optional_ptr< FileOpener > opener=nullptr)
 Check if path is pipe.
 
virtual DUCKDB_API void RemoveFile (const string &filename, optional_ptr< FileOpener > opener=nullptr)
 Remove a file from disk.
 
virtual DUCKDB_API bool TryRemoveFile (const string &filename, optional_ptr< FileOpener > opener=nullptr)
 Remvoe a file from disk if it exists - if it does not exist, return false.
 
virtual DUCKDB_API void RemoveFiles (const vector< string > &filenames, optional_ptr< FileOpener > opener=nullptr)
 Remove multiple files from disk - does not error if any file does not exist.
 
virtual DUCKDB_API void FileSync (FileHandle &handle)
 Sync a file handle to disk.
 
virtual DUCKDB_API string GetHomeDirectory ()
 Gets the users home directory.
 
virtual DUCKDB_API string ExpandPath (const string &path)
 Expands a given path, including e.g. expanding the home directory of the user.
 
virtual DUCKDB_API string PathSeparator (const string &path)
 Path separator for path.
 
virtual DUCKDB_API bool IsPathAbsolute (const string &path)
 Checks if path is is an absolute path.
 
DUCKDB_API string JoinPath (const string &a, const string &path)
 Join two paths together.
 
template<typename... ARGS>
string JoinPath (const string &a, const string &b, ARGS... args)
 
DUCKDB_API string ConvertSeparators (const string &path)
 Convert separators in a path to the local separators (e.g. convert "/" into \ on windows)
 
DUCKDB_API string ExtractBaseName (const string &path)
 Extract the base name of a file (e.g. if the input is lib/example.dll the base name is 'example')
 
DUCKDB_API string ExtractExtension (const string &path)
 Extract the extension of a file (e.g. if the input is lib/example.dll the extension is 'dll')
 
DUCKDB_API string ExtractName (const string &path)
 Extract the name of a file (e.g if the input is lib/example.dll the name is 'example.dll')
 
virtual DUCKDB_API vector< OpenFileInfoGlob (const string &path, FileOpener *opener=nullptr)
 Runs a glob on the file system, returning a list of matching files.
 
DUCKDB_API unique_ptr< MultiFileListGlob (const string &path, const FileGlobInput &input, optional_ptr< FileOpener > opener)
 
DUCKDB_API unique_ptr< MultiFileListGlobFileList (const string &path, const FileGlobInput &input=FileGlobOptions::DISALLOW_EMPTY)
 
DUCKDB_API vector< OpenFileInfoGlobFiles (const string &pattern, const FileGlobInput &input=FileGlobOptions::DISALLOW_EMPTY)
 
virtual DUCKDB_API void RegisterSubSystem (unique_ptr< FileSystem > sub_fs)
 registers a sub-file system to handle certain file name prefixes, e.g. http:// etc.
 
virtual DUCKDB_API void RegisterSubSystem (FileCompressionType compression_type, unique_ptr< FileSystem > fs)
 
virtual DUCKDB_API void UnregisterSubSystem (const string &name)
 Unregister a sub-filesystem by name.
 
virtual DUCKDB_API unique_ptr< FileSystemExtractSubSystem (const string &name)
 
virtual DUCKDB_API vector< string > ListSubSystems ()
 List registered sub-filesystems, including builtin ones.
 
virtual DUCKDB_API bool CanHandleFile (const string &fpath)
 Whether or not a sub-system can handle a specific file path.
 
virtual DUCKDB_API void Seek (FileHandle &handle, idx_t location)
 Set the file pointer of a file handle to a specified location. Reads and writes will happen from this location.
 
virtual DUCKDB_API idx_t SeekPosition (FileHandle &handle)
 
virtual DUCKDB_API bool IsManuallySet ()
 If FS was manually set by the user.
 
virtual DUCKDB_API unique_ptr< FileHandleOpenCompressedFile (QueryContext context, unique_ptr< FileHandle > handle, bool write)
 
virtual DUCKDB_API std::string GetName () const =0
 Return the name of the filesytem. Used for forming diagnosis messages.
 
virtual DUCKDB_API void SetDisabledFileSystems (const vector< string > &names)
 
virtual DUCKDB_API bool SubSystemIsDisabled (const string &name)
 
virtual DUCKDB_API bool IsDisabledForPath (const string &path)
 Check if the filesystem that would handle this path is disabled.
 
virtual DUCKDB_API string CanonicalizePath (const string &path, optional_ptr< FileOpener > opener=nullptr)
 Canonicalize a path.
 
template<class TARGET >
TARGETCast ()
 
template<class TARGET >
const TARGETCast () const
 

Additional Inherited Members

- Static Public Member Functions inherited from duckdb::FileSystem
static DUCKDB_API FileSystemGetFileSystem (ClientContext &context)
 
static DUCKDB_API FileSystemGetFileSystem (DatabaseInstance &db)
 
static DUCKDB_API FileSystemGet (AttachedDatabase &db)
 
static DUCKDB_API void SetWorkingDirectory (const string &path)
 Sets the working directory.
 
static DUCKDB_API string GetWorkingDirectory ()
 Gets the working directory.
 
static DUCKDB_API string GetHomeDirectory (optional_ptr< FileOpener > opener)
 Gets the users home directory.
 
static DUCKDB_API string ExpandPath (const string &path, optional_ptr< FileOpener > opener)
 Expands a given path, including e.g. expanding the home directory of the user.
 
static DUCKDB_API optional_idx GetAvailableMemory ()
 Returns the system-available memory in bytes. Returns DConstants::INVALID_INDEX if the system function fails.
 
static DUCKDB_API optional_idx GetAvailableDiskSpace (const string &path)
 Returns the space available on the disk. Returns DConstants::INVALID_INDEX if the information was not available.
 
static DUCKDB_API string GetEnvVariable (const string &name)
 Returns the value of an environment variable - or the empty string if it is not set.
 
static DUCKDB_API bool HasGlob (const string &str)
 Whether there is a glob in the string.
 
static DUCKDB_API unique_ptr< FileSystemCreateLocal ()
 Create a LocalFileSystem.
 
static DUCKDB_API bool IsRemoteFile (const string &path)
 Whether or not a file is remote or local, based only on file path.
 
static DUCKDB_API bool IsRemoteFile (const string &path, string &extension)
 
static DUCKDB_API bool IsDirectory (const OpenFileInfo &info)
 
- Protected Member Functions inherited from duckdb::FileSystem
virtual DUCKDB_API unique_ptr< FileHandleOpenFileExtended (const OpenFileInfo &path, FileOpenFlags flags, optional_ptr< FileOpener > opener)
 
virtual DUCKDB_API bool SupportsOpenFileExtended () const
 
virtual DUCKDB_API bool ListFilesExtended (const string &directory, const std::function< void(OpenFileInfo &info)> &callback, optional_ptr< FileOpener > opener)
 
virtual DUCKDB_API bool SupportsListFilesExtended () const
 
virtual DUCKDB_API unique_ptr< MultiFileListGlobFilesExtended (const string &path, const FileGlobInput &input, optional_ptr< FileOpener > opener=nullptr)
 
virtual DUCKDB_API bool SupportsGlobExtended () const
 

Member Function Documentation

◆ Read()

int64_t duckdb::CompressedFileSystem::Read ( FileHandle handle,
void buffer,
int64_t  nr_bytes 
)
overridevirtual

Read nr_bytes from the specified file into the buffer, moving the file pointer forward by nr_bytes. Returns the amount of bytes read.

Reimplemented from duckdb::FileSystem.

50261 {
50262 auto &compressed_file = handle.Cast<CompressedFile>();
50263 return compressed_file.ReadData(buffer, nr_bytes);
50264}

◆ Write()

int64_t duckdb::CompressedFileSystem::Write ( FileHandle handle,
void buffer,
int64_t  nr_bytes 
)
overridevirtual

Write nr_bytes from the buffer into the file, moving the file pointer forward by nr_bytes.

Reimplemented from duckdb::FileSystem.

50266 {
50267 auto &compressed_file = handle.Cast<CompressedFile>();
50268 return compressed_file.WriteData(data_ptr_cast(buffer), nr_bytes);
50269}

◆ Reset()

void duckdb::CompressedFileSystem::Reset ( FileHandle handle)
overridevirtual

Reset a file to the beginning (equivalent to Seek(handle, 0) for simple files)

Reimplemented from duckdb::FileSystem.

50271 {
50272 auto &compressed_file = handle.Cast<CompressedFile>();
50273 compressed_file.child_handle->Reset();
50274 compressed_file.Initialize(QueryContext(), compressed_file.write);
50275}

◆ GetFileSize()

int64_t duckdb::CompressedFileSystem::GetFileSize ( FileHandle handle)
overridevirtual

Returns the file size of a file handle, returns -1 on error.

Reimplemented from duckdb::FileSystem.

50277 {
50278 auto &compressed_file = handle.Cast<CompressedFile>();
50279 return NumericCast<int64_t>(compressed_file.child_handle->GetFileSize());
50280}

◆ OnDiskFile()

bool duckdb::CompressedFileSystem::OnDiskFile ( FileHandle handle)
overridevirtual

Whether or not the FS handles plain files on disk. This is relevant for certain optimizations, as random reads in a file on-disk are much cheaper than e.g. random reads in a file over the network

Reimplemented from duckdb::FileSystem.

50282 {
50283 auto &compressed_file = handle.Cast<CompressedFile>();
50284 return compressed_file.child_handle->OnDiskFile();
50285}

◆ CanSeek()

bool duckdb::CompressedFileSystem::CanSeek ( )
overridevirtual

Whether or not we can seek into the file.

Reimplemented from duckdb::FileSystem.

50287 {
50288 return false;
50289}

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