Soar Kernel  9.3.2 08-06-12
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Protected Attributes
soar_module::sqlite_database Class Reference

#include <soar_db.h>

Inherits soar_module::database.

Public Member Functions

bool backup (const char *file_name, std::string *err)
void connect (const char *file_name, int flags=(0x00000002|0x00000004))
void disconnect ()
sqlite3get_db ()
int64_t last_insert_rowid ()
const char * lib_version ()
int64_t memory_highwater ()
int64_t memory_usage ()
 sqlite_database ()
virtual ~sqlite_database ()
- Public Member Functions inherited from soar_module::database
 database ()
- Public Member Functions inherited from soar_module::status_object< db_status >
const char * get_errmsg ()
int get_errno ()
db_status get_status ()
 status_object ()
virtual ~status_object ()

Protected Attributes

sqlite3my_db

Additional Inherited Members

- Protected Member Functions inherited from soar_module::status_object< db_status >
void set_errmsg (const char *new_msg)
void set_errno (int new_errno)
void set_status (db_statusnew_status)

Detailed Description

Definition at line 246 of file soar_db.h.

Constructor & Destructor Documentation

soar_module::sqlite_database::sqlite_database ( )
inline

Definition at line 252 of file soar_db.h.

References soar_module::status_object< db_status >::set_errno(), and SQLITE_OK.

: database(), my_db( NULL )
{
}
virtual soar_module::sqlite_database::~sqlite_database ( )
inlinevirtual

Definition at line 257 of file soar_db.h.

{}

Member Function Documentation

bool soar_module::sqlite_database::backup ( const char *  file_name,
std::string *  err 
)
inline

Definition at line 301 of file soar_db.h.

References soar_module::connected, soar_module::status_object< db_status >::get_status(), my_db, sqlite3_backup_finish(), sqlite3_backup_init(), sqlite3_backup_step(), sqlite3_close(), sqlite3_errcode(), sqlite3_errmsg(), sqlite3_open_v2(), SQLITE_OK, SQLITE_OPEN_CREATE, and SQLITE_OPEN_READWRITE.

Referenced by epmem_backup_db(), and smem_backup_db().

{
sqlite3* backup_db;
bool return_val = false;
err->clear();
if ( get_status() == connected )
{
int sqlite_err = sqlite3_open_v2( file_name, &( backup_db ), ( SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE ), NULL );
if ( sqlite_err == SQLITE_OK )
{
sqlite3_backup* backup_h = sqlite3_backup_init( backup_db, "main", my_db, "main" );
if ( backup_h )
{
sqlite3_backup_step( backup_h, -1 );
sqlite3_backup_finish( backup_h );
}
if ( sqlite3_errcode( backup_db ) == SQLITE_OK )
{
return_val = true;
}
else
{
err->assign( "Error during backup: " );
err->append( sqlite3_errmsg( backup_db ) );
}
}
else
{
err->assign( "Error opening backup file: " );
err->append( sqlite3_errmsg( backup_db ) );
}
sqlite3_close( backup_db );
}
else
{
err->assign( "Database is not currently connected." );
}
return return_val;
}
void soar_module::sqlite_database::connect ( const char *  file_name,
int  flags = (  0x00000002   |  0x00000004   ) 
)
inline
void soar_module::sqlite_database::disconnect ( )
inline
sqlite3* soar_module::sqlite_database::get_db ( )
inline

Definition at line 261 of file soar_db.h.

References my_db.

Referenced by soar_module::sqlite_statement::_prep(), and soar_module::sqlite_statement::sqlite_err().

{ return my_db; }
int64_t soar_module::sqlite_database::last_insert_rowid ( )
inline

Definition at line 296 of file soar_db.h.

References my_db, and sqlite3_last_insert_rowid().

Referenced by _epmem_store_level(), epmem_temporal_hash(), smem_lti_add_id(), and smem_temporal_hash_add().

{ return static_cast<int64_t>( sqlite3_last_insert_rowid( my_db ) ); }
const char* soar_module::sqlite_database::lib_version ( )
inline
int64_t soar_module::sqlite_database::memory_highwater ( )
inline

Definition at line 298 of file soar_db.h.

References sqlite3_memory_highwater().

Referenced by smem_mem_high_stat::get_value(), and epmem_mem_high_stat::get_value().

{ return static_cast<int64_t>( sqlite3_memory_highwater( false ) ); }
int64_t soar_module::sqlite_database::memory_usage ( )
inline

Definition at line 297 of file soar_db.h.

References sqlite3_memory_used().

Referenced by smem_mem_usage_stat::get_value(), and epmem_mem_usage_stat::get_value().

{ return static_cast<int64_t>( sqlite3_memory_used() ); }

Field Documentation

sqlite3* soar_module::sqlite_database::my_db
protected

Definition at line 249 of file soar_db.h.

Referenced by backup(), connect(), disconnect(), get_db(), and last_insert_rowid().


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