Joedb 9.1.4
The Journal-Only Embedded Database
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
joedb Namespace Reference

Namespaces

namespace  db
 
namespace  generator
 One code generator for each of the file generated by joedbc.
 
namespace  ssh
 C++ wrappers for libssh.
 

Classes

class  Abstract_File
 
class  Assertion_Failure
 Indicates a bug in the code, thrown by JOEDB_ASSERT when NDEBUG not defined. More...
 
class  Async_Reader
 
class  Async_Writer
 
class  Blob
 
class  Blob_Reader_Command_Processor
 
class  Brotli_Codec
 
class  Brotli_Decoder
 
class  Brotli_File
 
class  Buffer
 
class  Buffered_File
 
class  Channel
 
class  Channel_Lock
 
class  Client
 Handle concurrent access to a file with a joedb::Connection. More...
 
class  Client_Command_Processor
 
class  Client_Lock
 Lock object that allows writing to a database managed by a joedb::Client. More...
 
class  Client_Parser
 
class  Codec
 
class  Command_Interpreter
 
class  Command_Processor
 
class  Compact_Freedom_Keeper
 
class  Compiler_Options
 
class  Connection
 
class  Connection_Builder
 
class  Connection_Parser
 Create an instance of a Connection by parsing command-line arguments. More...
 
class  CURL_Easy
 
class  CURL_File
 
class  Custom_Collector
 
class  Data_Manipulation_Command_Processor
 
class  Database
 
class  Database_Schema
 
class  Decoder
 
class  Destructor_Logger
 
class  Dummy_Connection_Builder
 
class  Dump_Connection_Builder
 
class  Dump_Connection_Data
 
class  Encoded_File
 
class  Exception
 
class  Field
 
class  File_Connection
 
class  File_Connection_Builder
 
class  File_Hasher
 
class  File_Parser
 Create an instance of a Buffered_File by parsing command-line arguments. More...
 
class  File_Slice
 
class  Freedom_Keeper
 
class  Identity_Codec
 
class  Interpreted_File
 
class  Interpreted_File_Data
 
class  Interpreted_Stream_File
 
class  Interpreter
 
class  Interpreter_Dump_Writable
 
class  Interpreter_Dump_Writable_Parent
 
class  Interpreter_Writable
 
struct  IO_Context_Wrapper
 
class  Journal_Connection
 
class  Journal_Construction_Lock
 
class  Journal_Hasher
 
class  Journal_Lock
 
class  Logger
 
class  Memory_File
 
class  Multiplexer
 
class  Network_Channel
 
class  Network_Connection_Builder
 
class  Out_Of_Date
 sent when the schema of a read-only compiled database is out of date More...
 
class  Portable_File
 
class  Posix_FD
 
class  Posix_File
 
class  Progress_Bar
 
class  Pullonly_Journal_Connection
 
class  Raw_Dump_Writable
 
class  Readable
 
class  Readable_Command_Processor
 
class  Readable_Interpreter
 
class  Readable_Writable_Command_Processor
 
class  Readonly_Brotli_File
 
class  Readonly_Database_Client
 
class  Readonly_Encoded_File
 
class  Readonly_Interpreted_File
 
class  Readonly_Journal
 
class  Readonly_Journal_Client
 
class  Readonly_Memory_File
 
class  Selective_Writable
 
class  Sequential_File
 
class  Server
 
class  Server_Client
 
class  Server_Connection
 
class  Server_Data
 
class  Server_File
 Directly read file served from joedb_server. More...
 
class  SFTP_File
 
class  SHA_256
 
class  Signal
 
class  Span
 
class  SQL_Dump_Writable
 
class  SQL_Dump_Writable_Parent
 
class  SQL_Writable
 
class  SSH_Connection_Builder
 
class  Stream_File
 
class  Stream_Logger
 
class  String_Logger
 
class  Table
 
class  Thread_Safe_Channel
 
class  Type
 
class  Upgradable_File
 
class  Windows_File
 
class  Windows_Handle
 
class  Writable
 
class  Writable_Command_Processor
 
class  Writable_Connection
 
class  Writable_Database_Client
 
class  Writable_Database_Client_Lock
 
class  Writable_Interpreter
 
class  Writable_Journal
 
class  Writable_Journal_Client
 
class  Writable_Journal_Client_Lock
 

Typedefs

typedef JOEDB_FILE File
 
typedef uint8_t Type_Id_Storage
 

Enumerations

enum class  Table_Id : uint16_t
 
enum class  Field_Id : uint16_t
 
enum class  Record_Id : size_t
 
enum class  Open_Mode {
  Open_Mode::read_existing , Open_Mode::write_existing , Open_Mode::create_new , Open_Mode::write_existing_or_create_new ,
  Open_Mode::shared_write , Open_Mode::write_lock , Open_Mode::mode_count
}
 
enum  JSON_Error { ok = 0 , utf8 = 1 , infnan = 2 }
 
enum class  Commit_Level { no_commit , half_commit , full_commit }
 

Functions

void parse_compiler_options (std::istream &in, Compiler_Options &compiler_options)
 
std::vector< std::string > split_namespace (const std::string &s)
 
void namespace_write (std::ostream &out, const std::vector< std::string > &n, const char *delimiter)
 
std::string namespace_string (const std::vector< std::string > &n, const char *delimiter)
 
void namespace_open (std::ostream &out, const std::vector< std::string > &n)
 
void namespace_close (std::ostream &out, const std::vector< std::string > &n)
 
void namespace_include_guard (std::ostream &out, const char *name, const std::vector< std::string > &n)
 
constexpr const char * get_version ()
 
constexpr std::underlying_type< Table_Id >::type to_underlying (Table_Id id)
 
constexpr std::underlying_type< Field_Id >::type to_underlying (Field_Id id)
 
constexpr std::underlying_type< Record_Id >::type to_underlying (Record_Id id)
 
constexpr Record_Id operator+ (Record_Id id, size_t size)
 
constexpr Record_Id operator- (Record_Id id, size_t size)
 
Table_Idoperator++ (Table_Id &id)
 
Field_Idoperator++ (Field_Id &id)
 
Record_Idoperator++ (Record_Id &id)
 
Record_Idoperator-- (Record_Id &id)
 
constexpr bool is_letter (char c)
 
constexpr bool is_number (char c)
 
bool is_identifier (const std::string &s)
 
constexpr uint32_t rotr (uint32_t x, uint8_t n)
 
std::string base64_encode (const std::string &input)
 
std::string base64_decode (const std::string &input)
 
void dump_header (std::ostream &out, Buffered_File &file)
 
void about_joedb (std::ostream &out)
 
void dump (const Readable &db, Writable &writable, bool schema_only=false)
 
void dump_data (const Readable &db, Writable &writable)
 
void pack (Readonly_Journal &input_journal, Writable &writable)
 
std::string get_time_string (int64_t timestamp)
 
std::string get_time_string_of_now ()
 
void inplace_pack (const std::string &file_name)
 
int write_json (std::ostream &out, const Readable &db, bool base64)
 
int write_json_string (std::ostream &out, const std::string &s, bool base64)
 
int main_exception_catcher (int(*main)(int, char **), int argc, char **argv)
 Catch exception from main.
 
void merge (Database &merged, const Database &db)
 
char get_hex_char_from_digit (uint8_t n)
 
void write_octal_character (std::ostream &out, uint8_t c)
 
void write_string (std::ostream &out, const std::string &s, bool json)
 
void write_int8 (std::ostream &out, int8_t value)
 
int process_journal_pair (int argc, char **argv, void(*process)(Readonly_Journal &, Writable_Journal &, int64_t checkpoint))
 
std::string read_string (std::istream &in)
 
uint8_t get_hex_digit_from_char (char c)
 
void write_hexa_character (std::ostream &out, uint8_t c)
 
void write_sql_string (std::ostream &out, const std::string &s)
 
size_t utf8_display_size (const std::string &s)
 
uint32_t read_utf8_char (size_t &i, const std::string &s)
 
void write_justified (std::ostream &out, const std::string &s, size_t width, bool flush_left)
 
int8_t read_int8 (std::istream &in)
 
bool read_boolean (std::istream &in)
 
void write_boolean (std::ostream &out, bool value)
 
void write_blob (std::ostream &out, Blob blob)
 
Blob read_blob (std::istream &in)
 
std::ostream & operator<< (std::ostream &out, Table_Id table_id)
 
std::ostream & operator<< (std::ostream &out, Field_Id field_id)
 
std::ostream & operator<< (std::ostream &out, Record_Id record_id)
 
std::istream & operator>> (std::istream &in, Table_Id &table_id)
 
std::istream & operator>> (std::istream &in, Field_Id &field_id)
 
std::istream & operator>> (std::istream &in, Record_Id &record_id)
 
int32_t read_int32 (std::istream &in)
 
void write_int32 (std::ostream &out, int32_t value)
 
int64_t read_int64 (std::istream &in)
 
void write_int64 (std::ostream &out, int64_t value)
 
Record_Id read_reference (std::istream &in)
 
void write_reference (std::ostream &out, Record_Id value)
 
float read_float32 (std::istream &in)
 
void write_float32 (std::ostream &out, float value)
 
double read_float64 (std::istream &in)
 
void write_float64 (std::ostream &out, double value)
 
int16_t read_int16 (std::istream &in)
 
void write_int16 (std::ostream &out, int16_t value)
 
void write_value (std::ostream &out, const Readable &readable, Table_Id table_id, Record_Id record_id, Field_Id field_id)
 

Variables

constexpr int protocol_version = 16
 
const std::array< const char *, size_t(Open_Mode::mode_count)> open_mode_strings
 

Typedef Documentation

◆ File

typedef JOEDB_FILE joedb::File

Definition at line 25 of file File.h.

◆ Type_Id_Storage

typedef uint8_t joedb::Type_Id_Storage

Definition at line 11 of file Type.h.

Enumeration Type Documentation

◆ Commit_Level

enum class joedb::Commit_Level
strong
Enumerator
no_commit 
half_commit 
full_commit 

Definition at line 11 of file Writable.h.

◆ Field_Id

enum class joedb::Field_Id : uint16_t
strong

Definition at line 11 of file index_types.h.

◆ Record_Id

enum class joedb::Record_Id : size_t
strong

Definition at line 12 of file index_types.h.

◆ Table_Id

enum class joedb::Table_Id : uint16_t
strong

Definition at line 10 of file index_types.h.

Function Documentation

◆ get_version()

constexpr const char * joedb::get_version ( )
constexpr

Definition at line 6 of file get_version.h.

◆ is_identifier()

bool joedb::is_identifier ( const std::string &  s)

Definition at line 18 of file is_identifier.cpp.

◆ is_letter()

constexpr bool joedb::is_letter ( char  c)
constexpr

Definition at line 4 of file is_identifier.cpp.

◆ is_number()

constexpr bool joedb::is_number ( char  c)
constexpr

Definition at line 11 of file is_identifier.cpp.

◆ operator+()

constexpr Record_Id joedb::operator+ ( Record_Id  id,
size_t  size 
)
inlineconstexpr

Definition at line 38 of file index_types.h.

◆ operator++() [1/3]

Field_Id & joedb::operator++ ( Field_Id id)
inline

Definition at line 51 of file index_types.h.

◆ operator++() [2/3]

Record_Id & joedb::operator++ ( Record_Id id)
inline

Definition at line 55 of file index_types.h.

◆ operator++() [3/3]

Table_Id & joedb::operator++ ( Table_Id id)
inline

Definition at line 47 of file index_types.h.

◆ operator-()

constexpr Record_Id joedb::operator- ( Record_Id  id,
size_t  size 
)
inlineconstexpr

Definition at line 42 of file index_types.h.

◆ operator--()

Record_Id & joedb::operator-- ( Record_Id id)
inline

Definition at line 59 of file index_types.h.

◆ rotr()

constexpr uint32_t joedb::rotr ( uint32_t  x,
uint8_t  n 
)
constexpr

Definition at line 13 of file SHA_256.h.

◆ to_underlying() [1/3]

constexpr std::underlying_type< Field_Id >::type joedb::to_underlying ( Field_Id  id)
inlineconstexpr

Definition at line 22 of file index_types.h.

◆ to_underlying() [2/3]

constexpr std::underlying_type< Record_Id >::type joedb::to_underlying ( Record_Id  id)
inlineconstexpr

Definition at line 30 of file index_types.h.

◆ to_underlying() [3/3]

constexpr std::underlying_type< Table_Id >::type joedb::to_underlying ( Table_Id  id)
inlineconstexpr

Definition at line 14 of file index_types.h.