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

#include <joedb/journal/Buffered_File.h>

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

Public Member Functions

 Buffered_File (Open_Mode mode)
 
void flush ()
 
void flush_and_sync ()
 
void exclusive_lock_tail ()
 
void unlock_tail () noexcept
 
bool tail_is_locked () const noexcept
 
void shared_lock_head ()
 
void exclusive_lock_head ()
 
void unlock_head () noexcept
 
bool is_shared () const noexcept
 
bool is_readonly () const noexcept
 
void set_position (int64_t position)
 
int64_t get_position () const noexcept
 
virtual void copy_to (Buffered_File &destination, int64_t start, int64_t size)
 
void copy_to (Buffered_File &destination)
 
template<typename T >
void write (T x)
 
template<typename T >
read ()
 
template<typename T >
void compact_write (T x)
 
template<typename T >
T compact_read ()
 
template<typename T >
T read_strong_type ()
 
void write_reference (Record_Id id)
 
Record_Id read_reference ()
 
void write_string (const std::string &s)
 
std::string read_string ()
 
void write_blob (Blob blob)
 
Blob read_blob ()
 
std::string safe_read_string (int64_t max_size)
 
void write_data (const char *data, size_t n)
 
size_t read_data (char *data, const size_t n)
 
void ignore (const int64_t n)
 
virtual std::string read_blob_data (Blob blob) const
 
- Public Member Functions inherited from joedb::Sequential_File
void sequential_seek (int64_t new_position)
 
size_t sequential_read (char *data, size_t size)
 
void sequential_write (const char *data, size_t size)
 
int64_t get_position () const
 
- Public Member Functions inherited from joedb::Abstract_File
virtual int64_t get_size () const
 
virtual size_t pread (char *data, size_t size, int64_t offset) const
 
virtual void pwrite (const char *data, size_t size, int64_t offset)
 
virtual void sync ()
 
virtual void shared_lock (int64_t start, int64_t size)
 
virtual void exclusive_lock (int64_t start, int64_t size)
 
virtual void unlock (int64_t start, int64_t size) noexcept
 
virtual ~Abstract_File ()=default
 
- Public Member Functions inherited from joedb::Posthumous_Thrower
void set_catcher (Posthumous_Catcher &new_catcher) noexcept
 

Static Public Attributes

static constexpr int64_t last_position = (1ULL << 63) - 1
 

Protected Member Functions

void destructor_flush () noexcept
 
void make_readonly ()
 
void make_writable ()
 
- Protected Member Functions inherited from joedb::Posthumous_Thrower
void postpone_exception (const char *message=nullptr) noexcept
 

Friends

class File_Hasher
 

Detailed Description

Definition at line 18 of file Buffered_File.h.

Constructor & Destructor Documentation

◆ Buffered_File()

joedb::Buffered_File::Buffered_File ( Open_Mode  mode)

Definition at line 10 of file Buffered_File.cpp.

Member Function Documentation

◆ compact_read()

template<typename T >
T joedb::Buffered_File::compact_read ( )
inline

Definition at line 174 of file Buffered_File.h.

◆ compact_write()

template<typename T >
void joedb::Buffered_File::compact_write ( T  x)
inline

Definition at line 166 of file Buffered_File.h.

◆ copy_to() [1/2]

void joedb::Buffered_File::copy_to ( Buffered_File destination)
inline

Definition at line 141 of file Buffered_File.h.

◆ copy_to() [2/2]

void joedb::Buffered_File::copy_to ( Buffered_File destination,
int64_t  start,
int64_t  size 
)
virtual

Definition at line 42 of file Buffered_File.cpp.

◆ destructor_flush()

void joedb::Buffered_File::destructor_flush ( )
protectednoexcept

Definition at line 95 of file Buffered_File.cpp.

◆ exclusive_lock_head()

void joedb::Buffered_File::exclusive_lock_head ( )
inline

Definition at line 117 of file Buffered_File.h.

◆ exclusive_lock_tail()

void joedb::Buffered_File::exclusive_lock_tail ( )
inline

Definition at line 103 of file Buffered_File.h.

◆ flush()

void joedb::Buffered_File::flush ( )

Definition at line 24 of file Buffered_File.cpp.

◆ flush_and_sync()

void joedb::Buffered_File::flush_and_sync ( )
inline

Definition at line 94 of file Buffered_File.h.

◆ get_position()

int64_t joedb::Buffered_File::get_position ( ) const
inlinenoexcept

Definition at line 126 of file Buffered_File.h.

◆ ignore()

void joedb::Buffered_File::ignore ( const int64_t  n)
inline

Definition at line 282 of file Buffered_File.h.

◆ is_readonly()

bool joedb::Buffered_File::is_readonly ( ) const
inlinenoexcept

Definition at line 121 of file Buffered_File.h.

◆ is_shared()

bool joedb::Buffered_File::is_shared ( ) const
inlinenoexcept

Definition at line 120 of file Buffered_File.h.

◆ make_readonly()

void joedb::Buffered_File::make_readonly ( )
inlineprotected

Definition at line 86 of file Buffered_File.h.

◆ make_writable()

void joedb::Buffered_File::make_writable ( )
inlineprotected

Definition at line 87 of file Buffered_File.h.

◆ read()

template<typename T >
T joedb::Buffered_File::read ( )
inline

Definition at line 157 of file Buffered_File.h.

◆ read_blob()

Blob joedb::Buffered_File::read_blob ( )
inline

Definition at line 206 of file Buffered_File.h.

◆ read_blob_data()

std::string joedb::Buffered_File::read_blob_data ( Blob  blob) const
virtual

Reimplemented in joedb::Server_File.

Definition at line 113 of file Buffered_File.cpp.

◆ read_data()

size_t joedb::Buffered_File::read_data ( char data,
const size_t  n 
)
inline

Definition at line 240 of file Buffered_File.h.

◆ read_reference()

Record_Id joedb::Buffered_File::read_reference ( )
inline

Definition at line 198 of file Buffered_File.h.

◆ read_string()

std::string joedb::Buffered_File::read_string ( )

Definition at line 71 of file Buffered_File.cpp.

◆ read_strong_type()

template<typename T >
T joedb::Buffered_File::read_strong_type ( )
inline

Definition at line 188 of file Buffered_File.h.

◆ safe_read_string()

std::string joedb::Buffered_File::safe_read_string ( int64_t  max_size)

Definition at line 81 of file Buffered_File.cpp.

◆ set_position()

void joedb::Buffered_File::set_position ( int64_t  position)

Definition at line 34 of file Buffered_File.cpp.

◆ shared_lock_head()

void joedb::Buffered_File::shared_lock_head ( )
inline

Definition at line 116 of file Buffered_File.h.

◆ tail_is_locked()

bool joedb::Buffered_File::tail_is_locked ( ) const
inlinenoexcept

Definition at line 115 of file Buffered_File.h.

◆ unlock_head()

void joedb::Buffered_File::unlock_head ( )
inlinenoexcept

Definition at line 118 of file Buffered_File.h.

◆ unlock_tail()

void joedb::Buffered_File::unlock_tail ( )
inlinenoexcept

Definition at line 109 of file Buffered_File.h.

◆ write()

template<typename T >
void joedb::Buffered_File::write ( T  x)
inline

Definition at line 148 of file Buffered_File.h.

◆ write_blob()

void joedb::Buffered_File::write_blob ( Blob  blob)
inline

Definition at line 205 of file Buffered_File.h.

◆ write_data()

void joedb::Buffered_File::write_data ( const char data,
size_t  n 
)
inline

Definition at line 210 of file Buffered_File.h.

◆ write_reference()

void joedb::Buffered_File::write_reference ( Record_Id  id)
inline

Definition at line 193 of file Buffered_File.h.

◆ write_string()

void joedb::Buffered_File::write_string ( const std::string &  s)

Definition at line 63 of file Buffered_File.cpp.

Friends And Related Symbol Documentation

◆ File_Hasher

Definition at line 20 of file Buffered_File.h.

Member Data Documentation

◆ last_position

constexpr int64_t joedb::Buffered_File::last_position = (1ULL << 63) - 1
staticconstexpr

Definition at line 101 of file Buffered_File.h.


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