12#ifndef __AUDACITY_DB_CONNECTION__
13#define __AUDACITY_DB_CONNECTION__
16#include <condition_variable>
45 const std::weak_ptr<AudacityProject> &pProject,
46 const std::shared_ptr<DBConnectionErrors> &pErrors,
62 int SafeMode(
const char *schema =
"main");
63 int FastMode(
const char* schema =
"main");
104 int ModeConfig(sqlite3 *db,
const char *schema,
const char *config);
107 static int CheckpointHook(
void *data, sqlite3 *db,
const char *schema,
int pages);
140 ,
public std::enable_shared_from_this< ConnectionPtr >
Utility ClientData::Site to register hooks into a host class that attach client data.
std::unique_ptr< DBConnection > Connection
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
~ConnectionPtr() override
static ConnectionPtr & Get(AudacityProject &project)
void CheckpointThread(sqlite3 *db, const FilePath &fileName)
std::shared_ptr< DBConnectionErrors > mpErrors
static int CheckpointHook(void *data, sqlite3 *db, const char *schema, int pages)
std::mutex mCheckpointMutex
bool Assign(sqlite3 *handle)
void ThrowException(bool write) const
throw and show appropriate message box
int OpenStepByStep(const FilePath fileName)
void SetError(const TranslatableString &msg, const TranslatableString &libraryError={}, int errorCode={})
Just set stored errors.
const wxString GetLastMessage() const
std::atomic_bool mCheckpointStop
std::atomic_bool mCheckpointActive
std::mutex mStatementMutex
std::atomic_bool mCheckpointPending
int FastMode(const char *schema="main")
std::thread mCheckpointThread
void SetBypass(bool bypass)
sqlite3_stmt * Prepare(enum StatementID id, const char *sql)
int SetPageSize(const char *schema="main")
DBConnection(const std::weak_ptr< AudacityProject > &pProject, const std::shared_ptr< DBConnectionErrors > &pErrors, CheckpointFailureCallback callback)
std::condition_variable mCheckpointCondition
std::map< StatementIndex, sqlite3_stmt * > mStatements
void SetDBError(const TranslatableString &msg, const TranslatableString &libraryError={}, int errorCode=-1)
Set stored errors and write to log; and default libraryError to what database library reports.
int ModeConfig(sqlite3 *db, const char *schema, const char *config)
std::function< void()> CheckpointFailureCallback
std::weak_ptr< AudacityProject > mpProject
CheckpointFailureCallback mCallback
int Open(const FilePath fileName)
std::pair< enum StatementID, std::thread::id > StatementIndex
int SafeMode(const char *schema="main")
Holds a msgid for the translation catalog; may also bind format arguments.
A convenient default parameter for class template Site.
TranslatableString mLastError
TranslatableString mLibraryError