Bitcoin Core  22.99.0
P2P Digital Currency
Public Member Functions | Private Member Functions | Private Attributes | List of all members
wallet::SQLiteBatch Class Reference

RAII class that provides access to a WalletDatabase. More...

#include <sqlite.h>

Inheritance diagram for wallet::SQLiteBatch:
[legend]
Collaboration diagram for wallet::SQLiteBatch:
[legend]

Public Member Functions

 SQLiteBatch (SQLiteDatabase &database)
 
 ~SQLiteBatch () override
 
void Flush () override
 
void Close () override
 
bool StartCursor () override
 
bool ReadAtCursor (CDataStream &key, CDataStream &value, bool &complete) override
 
void CloseCursor () override
 
bool TxnBegin () override
 
bool TxnCommit () override
 
bool TxnAbort () override
 
- Public Member Functions inherited from wallet::DatabaseBatch
 DatabaseBatch ()
 
virtual ~DatabaseBatch ()
 
 DatabaseBatch (const DatabaseBatch &)=delete
 
DatabaseBatchoperator= (const DatabaseBatch &)=delete
 
template<typename K , typename T >
bool Read (const K &key, T &value)
 
template<typename K , typename T >
bool Write (const K &key, const T &value, bool fOverwrite=true)
 
template<typename K >
bool Erase (const K &key)
 
template<typename K >
bool Exists (const K &key)
 

Private Member Functions

void SetupSQLStatements ()
 
bool ReadKey (CDataStream &&key, CDataStream &value) override
 
bool WriteKey (CDataStream &&key, CDataStream &&value, bool overwrite=true) override
 
bool EraseKey (CDataStream &&key) override
 
bool HasKey (CDataStream &&key) override
 

Private Attributes

SQLiteDatabasem_database
 
bool m_cursor_init = false
 
sqlite3_stmt * m_read_stmt {nullptr}
 
sqlite3_stmt * m_insert_stmt {nullptr}
 
sqlite3_stmt * m_overwrite_stmt {nullptr}
 
sqlite3_stmt * m_delete_stmt {nullptr}
 
sqlite3_stmt * m_cursor_stmt {nullptr}
 

Detailed Description

RAII class that provides access to a WalletDatabase.

Definition at line 18 of file sqlite.h.

Constructor & Destructor Documentation

◆ SQLiteBatch()

wallet::SQLiteBatch::SQLiteBatch ( SQLiteDatabase database)
explicit

Definition at line 335 of file sqlite.cpp.

Here is the call graph for this function:

◆ ~SQLiteBatch()

wallet::SQLiteBatch::~SQLiteBatch ( )
inlineoverride

Definition at line 40 of file sqlite.h.

Here is the call graph for this function:

Member Function Documentation

◆ Close()

void wallet::SQLiteBatch::Close ( )
overridevirtual

Implements wallet::DatabaseBatch.

Definition at line 344 of file sqlite.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CloseCursor()

void wallet::SQLiteBatch::CloseCursor ( )
overridevirtual

Implements wallet::DatabaseBatch.

Definition at line 524 of file sqlite.cpp.

◆ EraseKey()

bool wallet::SQLiteBatch::EraseKey ( CDataStream &&  key)
overrideprivatevirtual

Implements wallet::DatabaseBatch.

Definition at line 446 of file sqlite.cpp.

Here is the call graph for this function:

◆ Flush()

void wallet::SQLiteBatch::Flush ( )
inlineoverridevirtual

Implements wallet::DatabaseBatch.

Definition at line 43 of file sqlite.h.

◆ HasKey()

bool wallet::SQLiteBatch::HasKey ( CDataStream &&  key)
overrideprivatevirtual

Implements wallet::DatabaseBatch.

Definition at line 470 of file sqlite.cpp.

Here is the call graph for this function:

◆ ReadAtCursor()

bool wallet::SQLiteBatch::ReadAtCursor ( CDataStream key,
CDataStream value,
bool &  complete 
)
overridevirtual

Implements wallet::DatabaseBatch.

Definition at line 498 of file sqlite.cpp.

Here is the call graph for this function:

◆ ReadKey()

bool wallet::SQLiteBatch::ReadKey ( CDataStream &&  key,
CDataStream value 
)
overrideprivatevirtual

Implements wallet::DatabaseBatch.

Definition at line 374 of file sqlite.cpp.

Here is the call graph for this function:

◆ SetupSQLStatements()

void wallet::SQLiteBatch::SetupSQLStatements ( )
private

Definition at line 105 of file sqlite.cpp.

Here is the caller graph for this function:

◆ StartCursor()

bool wallet::SQLiteBatch::StartCursor ( )
overridevirtual

Implements wallet::DatabaseBatch.

Definition at line 490 of file sqlite.cpp.

Here is the call graph for this function:

◆ TxnAbort()

bool wallet::SQLiteBatch::TxnAbort ( )
overridevirtual

Implements wallet::DatabaseBatch.

Definition at line 550 of file sqlite.cpp.

Here is the caller graph for this function:

◆ TxnBegin()

bool wallet::SQLiteBatch::TxnBegin ( )
overridevirtual

Implements wallet::DatabaseBatch.

Definition at line 530 of file sqlite.cpp.

◆ TxnCommit()

bool wallet::SQLiteBatch::TxnCommit ( )
overridevirtual

Implements wallet::DatabaseBatch.

Definition at line 540 of file sqlite.cpp.

◆ WriteKey()

bool wallet::SQLiteBatch::WriteKey ( CDataStream &&  key,
CDataStream &&  value,
bool  overwrite = true 
)
overrideprivatevirtual

Implements wallet::DatabaseBatch.

Definition at line 407 of file sqlite.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ m_cursor_init

bool wallet::SQLiteBatch::m_cursor_init = false
private

Definition at line 23 of file sqlite.h.

◆ m_cursor_stmt

sqlite3_stmt* wallet::SQLiteBatch::m_cursor_stmt {nullptr}
private

Definition at line 29 of file sqlite.h.

◆ m_database

SQLiteDatabase& wallet::SQLiteBatch::m_database
private

Definition at line 21 of file sqlite.h.

◆ m_delete_stmt

sqlite3_stmt* wallet::SQLiteBatch::m_delete_stmt {nullptr}
private

Definition at line 28 of file sqlite.h.

◆ m_insert_stmt

sqlite3_stmt* wallet::SQLiteBatch::m_insert_stmt {nullptr}
private

Definition at line 26 of file sqlite.h.

◆ m_overwrite_stmt

sqlite3_stmt* wallet::SQLiteBatch::m_overwrite_stmt {nullptr}
private

Definition at line 27 of file sqlite.h.

◆ m_read_stmt

sqlite3_stmt* wallet::SQLiteBatch::m_read_stmt {nullptr}
private

Definition at line 25 of file sqlite.h.


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