Joedb 10.3.0
The Journal-Only Embedded Database
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
joedb::Readonly_Memory_File Class Reference

#include <joedb/journal/Readonly_Memory_File.h>

Inheritance diagram for joedb::Readonly_Memory_File:
Inheritance graph
[legend]
Collaboration diagram for joedb::Readonly_Memory_File:
Collaboration graph
[legend]

Public Member Functions

 Readonly_Memory_File (const void *memory, size_t size)
 
 Readonly_Memory_File (const std::string_view s)
 
 Readonly_Memory_File (const std::vector< char > &v)
 
int64_t get_size () const override
 Get the size of the file, or -1 if it is unknown.
 
- Public Member Functions inherited from joedb::Abstract_File
 Abstract_File (Open_Mode mode)
 
bool is_shared () const noexcept
 
bool is_readonly () const noexcept
 
Open_Mode get_mode () const noexcept
 
virtual void pwrite (const char *data, size_t size, int64_t offset)
 Write a range of bytes. Extend file size if necessary.
 
virtual void sync ()
 Write data durably (including file-size change)
 
virtual void datasync ()
 Write data durably (no file-size change)
 
virtual void shared_lock (int64_t start, int64_t size)
 Lock a range of bytes for reading (prevents writes, not reads)
 
virtual void exclusive_lock (int64_t start, int64_t size)
 Lock a range of bytes for writing (prevents both writes and reads)
 
virtual void unlock (int64_t start, int64_t size) noexcept
 Remove a lock. The range should match the range of a corresponding lock.
 
void exclusive_lock_tail ()
 
void unlock_tail () noexcept
 
void exclusive_lock_head ()
 
void shared_lock_head ()
 
void unlock_head () noexcept
 
std::string read_blob (Blob blob) const
 
virtual void copy_to (Abstract_File &destination, int64_t start, int64_t size) const
 
virtual bool equal_to (const Abstract_File &destination, int64_t from, int64_t until) const
 
void copy_to (Abstract_File &destination) const
 
virtual ~Abstract_File ()=default
 

Protected Member Functions

size_t pread (char *buffer, size_t size, int64_t offset) const override
 Read a range of bytes.
 
- Protected Member Functions inherited from joedb::Abstract_File
void make_readonly ()
 
void make_writable ()
 

Protected Attributes

const char * data
 
const size_t data_size
 

Additional Inherited Members

- Static Public Member Functions inherited from joedb::Abstract_File
static void reading_past_end_of_file ()
 
- Static Protected Attributes inherited from joedb::Abstract_File
static constexpr int64_t last_position = (1ULL << 63) - 1
 

Detailed Description

Definition at line 13 of file Readonly_Memory_File.h.

Constructor & Destructor Documentation

◆ Readonly_Memory_File() [1/3]

joedb::Readonly_Memory_File::Readonly_Memory_File ( const void *  memory,
size_t  size 
)
inline

Definition at line 33 of file Readonly_Memory_File.h.

◆ Readonly_Memory_File() [2/3]

joedb::Readonly_Memory_File::Readonly_Memory_File ( const std::string_view  s)
inline

Definition at line 42 of file Readonly_Memory_File.h.

◆ Readonly_Memory_File() [3/3]

joedb::Readonly_Memory_File::Readonly_Memory_File ( const std::vector< char > &  v)
inline

Definition at line 49 of file Readonly_Memory_File.h.

Member Function Documentation

◆ get_size()

int64_t joedb::Readonly_Memory_File::get_size ( ) const
inlineoverridevirtual

Reimplemented from joedb::Abstract_File.

Definition at line 56 of file Readonly_Memory_File.h.

◆ pread()

size_t joedb::Readonly_Memory_File::pread ( char *  data,
size_t  size,
int64_t  offset 
) const
inlineoverrideprotectedvirtual

For very large reads, the returned value may be less than size, even if the end of the file is not reached. It is assumed that small reads (such as the 41 bytes of the joedb header) will not be truncated. 0 is returned if the end of the file is reached.

Reimplemented from joedb::Abstract_File.

Definition at line 20 of file Readonly_Memory_File.h.

Member Data Documentation

◆ data

const char* joedb::Readonly_Memory_File::data
protected

Definition at line 16 of file Readonly_Memory_File.h.

◆ data_size

const size_t joedb::Readonly_Memory_File::data_size
protected

Definition at line 17 of file Readonly_Memory_File.h.


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