From a14f29f84ff842f677d5383d438ed8ca9c4d693d Mon Sep 17 00:00:00 2001 From: seelabs Date: Wed, 22 Apr 2015 06:15:39 -0700 Subject: [PATCH] Remove obsolete code --- Builds/VisualStudio2013/RippleD.vcxproj | 16 - .../VisualStudio2013/RippleD.vcxproj.filters | 12 - src/ripple/app/data/Database.cpp | 213 -------- src/ripple/app/data/Database.h | 128 ----- src/ripple/app/data/SqliteDatabase.cpp | 461 ------------------ src/ripple/app/data/SqliteDatabase.h | 152 ------ src/ripple/app/peers/UniqueNodeList.cpp | 1 - src/ripple/rpc/handlers/GetCounts.cpp | 1 - src/ripple/unity/app2.cpp | 2 - 9 files changed, 986 deletions(-) delete mode 100644 src/ripple/app/data/Database.cpp delete mode 100644 src/ripple/app/data/Database.h delete mode 100644 src/ripple/app/data/SqliteDatabase.cpp delete mode 100644 src/ripple/app/data/SqliteDatabase.h diff --git a/Builds/VisualStudio2013/RippleD.vcxproj b/Builds/VisualStudio2013/RippleD.vcxproj index 4f7ef5c535..ba6cd7f7c8 100644 --- a/Builds/VisualStudio2013/RippleD.vcxproj +++ b/Builds/VisualStudio2013/RippleD.vcxproj @@ -1426,14 +1426,6 @@ - - True - True - ..\..\src\soci\src\core;..\..\src\sqlite;%(AdditionalIncludeDirectories) - ..\..\src\soci\src\core;..\..\src\sqlite;%(AdditionalIncludeDirectories) - - - True True @@ -1464,14 +1456,6 @@ - - True - True - ..\..\src\soci\src\core;..\..\src\sqlite;%(AdditionalIncludeDirectories) - ..\..\src\soci\src\core;..\..\src\sqlite;%(AdditionalIncludeDirectories) - - - True True diff --git a/Builds/VisualStudio2013/RippleD.vcxproj.filters b/Builds/VisualStudio2013/RippleD.vcxproj.filters index 9269636857..d21c7f7289 100644 --- a/Builds/VisualStudio2013/RippleD.vcxproj.filters +++ b/Builds/VisualStudio2013/RippleD.vcxproj.filters @@ -2160,12 +2160,6 @@ ripple\app\consensus - - ripple\app\data - - - ripple\app\data - ripple\app\data @@ -2187,12 +2181,6 @@ ripple\app\data - - ripple\app\data - - - ripple\app\data - ripple\app\data\tests diff --git a/src/ripple/app/data/Database.cpp b/src/ripple/app/data/Database.cpp deleted file mode 100644 index 6e5ab251b4..0000000000 --- a/src/ripple/app/data/Database.cpp +++ /dev/null @@ -1,213 +0,0 @@ -//------------------------------------------------------------------------------ -/* - This file is part of rippled: https://github.com/ripple/rippled - Copyright (c) 2012, 2013 Ripple Labs Inc. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ -//============================================================================== - -#include -#include -#include -#include - -namespace ripple { - -Database::Database (const char* host) - : mNumCol (0) -{ - mHost = host; -} - -Database::~Database () -{ -} - -bool Database::getNull (const char* colName) -{ - int index; - - if (getColNumber (colName, &index)) - { - return getNull (index); - } - - return true; -} - -char* Database::getStr (const char* colName, std::string& retStr) -{ - int index; - - if (getColNumber (colName, &index)) - { - return getStr (index, retStr); - } - - return nullptr; -} - -std::int32_t Database::getInt (const char* colName) -{ - int index; - - if (getColNumber (colName, &index)) - { - return getInt (index); - } - - return 0; -} - -float Database::getFloat (const char* colName) -{ - int index; - - if (getColNumber (colName, &index)) - { - return getFloat (index); - } - - return 0; -} - -bool Database::getBool (const char* colName) -{ - int index; - - if (getColNumber (colName, &index)) - { - return getBool (index); - } - - return 0; -} - -int Database::getBinary (const char* colName, unsigned char* buf, int maxSize) -{ - int index; - - if (getColNumber (colName, &index)) - { - return (getBinary (index, buf, maxSize)); - } - - return (0); -} - -Blob Database::getBinary (std::string const& strColName) -{ - int index; - - if (getColNumber (strColName.c_str (), &index)) - { - return getBinary (index); - } - - return Blob (); -} - -std::string Database::getStrBinary (std::string const& strColName) -{ - // YYY Could eliminate a copy if getStrBinary was a template. - return strCopy (getBinary (strColName.c_str ())); -} - -std::uint64_t Database::getBigInt (const char* colName) -{ - int index; - - if (getColNumber (colName, &index)) - { - return getBigInt (index); - } - - return 0; -} - -// returns false if can't find col -bool Database::getColNumber (const char* colName, int* retIndex) -{ - for (unsigned int n = 0; n < mColNameTable.size (); n++) - { - if (strcmp (colName, mColNameTable[n].c_str ()) == 0) - { - *retIndex = n; - return (true); - } - } - - return false; -} - -#if 0 -int Database::getSingleDBValueInt (const char* sql) -{ - int ret; - - if ( executeSQL (sql) && startIterRows () -{ - ret = getInt (0); - endIterRows (); - } - else - { - //theUI->statusMsg("ERROR with database: %s",sql); - ret = 0; - } - return (ret); -} -#endif - -#if 0 -float Database::getSingleDBValueFloat (const char* sql) -{ - float ret; - - if (executeSQL (sql) && startIterRows () && getNextRow ()) - { - ret = getFloat (0); - endIterRows (); - } - else - { - //theUI->statusMsg("ERROR with database: %s",sql); - ret = 0; - } - - return (ret); -} -#endif - -#if 0 -char* Database::getSingleDBValueStr (const char* sql, std::string& retStr) -{ - char* ret; - - if (executeSQL (sql) && startIterRows ()) - { - ret = getStr (0, retStr); - endIterRows (); - } - else - { - //theUI->statusMsg("ERROR with database: %s",sql); - ret = 0; - } - - return (ret); -} -#endif - -} // ripple diff --git a/src/ripple/app/data/Database.h b/src/ripple/app/data/Database.h deleted file mode 100644 index 724b787fcc..0000000000 --- a/src/ripple/app/data/Database.h +++ /dev/null @@ -1,128 +0,0 @@ -//------------------------------------------------------------------------------ -/* - This file is part of rippled: https://github.com/ripple/rippled - Copyright (c) 2012, 2013 Ripple Labs Inc. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ -//============================================================================== - -#ifndef RIPPLE_APP_DATA_DATABASE_H_INCLUDED -#define RIPPLE_APP_DATA_DATABASE_H_INCLUDED - -#include -#include -#include -#include - -namespace ripple { - -// VFALCO Get rid of these macros -// -#define SQL_FOREACH(_db, _strQuery) \ - if ((_db)->executeSQL(_strQuery)) \ - for (bool _bMore = (_db)->startIterRows(); _bMore; _bMore = (_db)->getNextRow()) - -#define SQL_EXISTS(_db, _strQuery) \ - ((_db)->executeSQL(_strQuery) && (_db)->startIterRows()) - -/* - this maintains the connection to the database -*/ - -class SqliteDatabase; -class JobQueue; - -class Database -{ -public: - explicit Database (const char* host); - - virtual ~Database (); - - virtual void connect () = 0; - - virtual void disconnect () = 0; - - // returns true if the query went ok - virtual bool executeSQL (const char* sql, bool fail_okay = false) = 0; - - bool executeSQL (std::string strSql, bool fail_okay = false) - { - return executeSQL (strSql.c_str (), fail_okay); - } - - // returns false if there are no results - virtual bool startIterRows (bool finalize = true) = 0; - virtual void endIterRows () = 0; - - // call this after you executeSQL - // will return false if there are no more rows - virtual bool getNextRow (bool finalize = true) = 0; - - // get Data from the current row - bool getNull (const char* colName); - char* getStr (const char* colName, std::string& retStr); - std::string getStrBinary (std::string const& strColName); - std::int32_t getInt (const char* colName); - float getFloat (const char* colName); - bool getBool (const char* colName); - - // returns amount stored in buf - int getBinary (const char* colName, unsigned char* buf, int maxSize); - Blob getBinary (std::string const& strColName); - - std::uint64_t getBigInt (const char* colName); - - virtual bool getNull (int colIndex) = 0; - virtual char* getStr (int colIndex, std::string& retStr) = 0; - virtual std::int32_t getInt (int colIndex) = 0; - virtual float getFloat (int colIndex) = 0; - virtual bool getBool (int colIndex) = 0; - virtual int getBinary (int colIndex, unsigned char* buf, int maxSize) = 0; - virtual std::uint64_t getBigInt (int colIndex) = 0; - virtual Blob getBinary (int colIndex) = 0; - - // int getSingleDBValueInt(const char* sql); - // float getSingleDBValueFloat(const char* sql); - // char* getSingleDBValueStr(const char* sql, std::string& retStr); - - // VFALCO TODO Make this parameter a reference instead of a pointer. - virtual bool setupCheckpointing (JobQueue*) - { - return false; - } - virtual SqliteDatabase* getSqliteDB () - { - return nullptr; - } - virtual int getKBUsedAll () - { - return -1; - } - virtual int getKBUsedDB () - { - return -1; - } - -protected: - bool getColNumber (const char* colName, int* retIndex); - - int mNumCol; - std::string mHost; - std::vector mColNameTable; -}; - -} // ripple - -#endif diff --git a/src/ripple/app/data/SqliteDatabase.cpp b/src/ripple/app/data/SqliteDatabase.cpp deleted file mode 100644 index 547bc024c9..0000000000 --- a/src/ripple/app/data/SqliteDatabase.cpp +++ /dev/null @@ -1,461 +0,0 @@ -//------------------------------------------------------------------------------ -/* - This file is part of rippled: https://github.com/ripple/rippled - Copyright (c) 2012, 2013 Ripple Labs Inc. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ -//============================================================================== - -#include -#include -#include -#include - -namespace ripple { - -SqliteStatement::SqliteStatement (SqliteDatabase* db, const char* sql) -{ - assert (db); - - sqlite3* conn = db->peekConnection (); - int j = sqlite3_prepare_v2 (conn, sql, strlen (sql) + 1, &statement, nullptr); - - if (j != SQLITE_OK) - throw j; -} - -SqliteStatement::SqliteStatement (SqliteDatabase* db, std::string const& sql) -{ - assert (db); - - sqlite3* conn = db->peekConnection (); - int j = sqlite3_prepare_v2 (conn, sql.c_str (), sql.size () + 1, &statement, nullptr); - - if (j != SQLITE_OK) - throw j; -} - -SqliteStatement::~SqliteStatement () -{ - sqlite3_finalize (statement); -} - -//------------------------------------------------------------------------------ - -SqliteDatabase::SqliteDatabase (const char* host) - : Database (host) - , Thread ("sqlitedb") - , mWalQ (nullptr) - , walRunning (false) -{ - startThread (); - - mConnection = nullptr; - mCurrentStmt = nullptr; -} - -SqliteDatabase::~SqliteDatabase () -{ - // Blocks until the thread exits in an orderly fashion - stopThread (); -} - -void SqliteDatabase::connect () -{ - int rc = sqlite3_open_v2 (mHost.c_str (), &mConnection, - SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_FULLMUTEX, nullptr); - - if (rc) - { - WriteLog (lsFATAL, SqliteDatabase) << "Can't open " << mHost << " " << rc; - sqlite3_close (mConnection); - assert ((rc != SQLITE_BUSY) && (rc != SQLITE_LOCKED)); - } -} - -void SqliteDatabase::disconnect () -{ - sqlite3_finalize (mCurrentStmt); - sqlite3_close (mConnection); -} - -// returns true if the query went ok -bool SqliteDatabase::executeSQL (const char* sql, bool fail_ok) -{ -#ifdef DEBUG_HANGING_LOCKS - assert (fail_ok || (mCurrentStmt == nullptr)); -#endif - - sqlite3_finalize (mCurrentStmt); - - int rc = sqlite3_prepare_v2 (mConnection, sql, -1, &mCurrentStmt, nullptr); - - if (SQLITE_OK != rc) - { - if (!fail_ok) - { -#ifdef BEAST_DEBUG - WriteLog (lsWARNING, SqliteDatabase) << "Perror:" << mHost << ": " << rc; - WriteLog (lsWARNING, SqliteDatabase) << "Statement: " << sql; - WriteLog (lsWARNING, SqliteDatabase) << "Error: " << sqlite3_errmsg (mConnection); -#endif - } - - endIterRows (); - return false; - } - - rc = sqlite3_step (mCurrentStmt); - - if (rc == SQLITE_ROW) - { - mMoreRows = true; - } - else if (rc == SQLITE_DONE) - { - endIterRows (); - mMoreRows = false; - } - else - { - if ((rc != SQLITE_BUSY) && (rc != SQLITE_LOCKED)) - { - WriteLog (lsFATAL, SqliteDatabase) << mHost << " returns error " << rc << ": " << sqlite3_errmsg (mConnection); - assert (false); - } - - mMoreRows = false; - - if (!fail_ok) - { -#ifdef BEAST_DEBUG - WriteLog (lsWARNING, SqliteDatabase) << "SQL Serror:" << mHost << ": " << rc; - WriteLog (lsWARNING, SqliteDatabase) << "Statement: " << sql; - WriteLog (lsWARNING, SqliteDatabase) << "Error: " << sqlite3_errmsg (mConnection); -#endif - } - - endIterRows (); - return false; - } - - return true; -} - -// returns false if there are no results -bool SqliteDatabase::startIterRows (bool finalize) -{ - mColNameTable.clear (); - mColNameTable.resize (sqlite3_column_count (mCurrentStmt)); - - for (unsigned n = 0; n < mColNameTable.size (); n++) - { - mColNameTable[n] = sqlite3_column_name (mCurrentStmt, n); - } - - if (!mMoreRows && finalize) - endIterRows (); - - return (mMoreRows); -} - -void SqliteDatabase::endIterRows () -{ - sqlite3_finalize (mCurrentStmt); - mCurrentStmt = nullptr; -} - -// call this after you executeSQL -// will return false if there are no more rows -bool SqliteDatabase::getNextRow (bool finalize) -{ - if (mMoreRows) - { - int rc = sqlite3_step (mCurrentStmt); - - if (rc == SQLITE_ROW) - return (true); - - assert ((rc != SQLITE_BUSY) && (rc != SQLITE_LOCKED)); - CondLog ((rc != SQLITE_DONE), lsWARNING, SqliteDatabase) << "Rerror: " << mHost << ": " << rc; - } - - if (finalize) - endIterRows (); - - return false; -} - -bool SqliteDatabase::getNull (int colIndex) -{ - return (SQLITE_NULL == sqlite3_column_type (mCurrentStmt, colIndex)); -} - -char* SqliteDatabase::getStr (int colIndex, std::string& retStr) -{ - const char* text = reinterpret_cast (sqlite3_column_text (mCurrentStmt, colIndex)); - retStr = (text == nullptr) ? "" : text; - return const_cast (retStr.c_str ()); -} - -std::int32_t SqliteDatabase::getInt (int colIndex) -{ - return (sqlite3_column_int (mCurrentStmt, colIndex)); -} - -float SqliteDatabase::getFloat (int colIndex) -{ - return (static_cast (sqlite3_column_double (mCurrentStmt, colIndex))); -} - -bool SqliteDatabase::getBool (int colIndex) -{ - return (sqlite3_column_int (mCurrentStmt, colIndex) ? true : false); -} - -int SqliteDatabase::getBinary (int colIndex, unsigned char* buf, int maxSize) -{ - const void* blob = sqlite3_column_blob (mCurrentStmt, colIndex); - int size = sqlite3_column_bytes (mCurrentStmt, colIndex); - - if (size < maxSize) maxSize = size; - - memcpy (buf, blob, maxSize); - return (size); -} - -Blob SqliteDatabase::getBinary (int colIndex) -{ - const unsigned char* blob = reinterpret_cast (sqlite3_column_blob (mCurrentStmt, colIndex)); - size_t iSize = sqlite3_column_bytes (mCurrentStmt, colIndex); - Blob vucResult; - - vucResult.resize (iSize); - std::copy (blob, blob + iSize, vucResult.begin ()); - - return vucResult; -} - -std::uint64_t SqliteDatabase::getBigInt (int colIndex) -{ - return (sqlite3_column_int64 (mCurrentStmt, colIndex)); -} - -int SqliteDatabase::getKBUsedAll () -{ - return static_cast (sqlite3_memory_used () / 1024); -} - -int SqliteDatabase::getKBUsedDB () -{ - int cur = 0, hiw = 0; - sqlite3_db_status (mConnection, SQLITE_DBSTATUS_CACHE_USED, &cur, &hiw, 0); - return cur / 1024; -} - -static int SqliteWALHook (void* s, sqlite3* dbCon, const char* dbName, int walSize) -{ - (reinterpret_cast (s))->doHook (dbName, walSize); - return SQLITE_OK; -} - -bool SqliteDatabase::setupCheckpointing (JobQueue* q) -{ - mWalQ = q; - sqlite3_wal_hook (mConnection, SqliteWALHook, this); - return true; -} - -void SqliteDatabase::doHook (const char* db, int pages) -{ - if (pages < 1000) - return; - - { - ScopedLockType sl (m_walMutex); - - if (walRunning) - return; - - walRunning = true; - } - - if (mWalQ) - { - mWalQ->addJob (jtWAL, std::string ("WAL:") + mHost, std::bind (&SqliteDatabase::runWal, this)); - } - else - { - notify(); - } -} - -void SqliteDatabase::run () -{ - // Simple thread loop runs Wal every time it wakes up via - // the call to Thread::notify, unless Thread::threadShouldExit returns - // true in which case we simply break. - // - for (;;) - { - wait (); - if (threadShouldExit()) - break; - runWal(); - } -} - -void SqliteDatabase::runWal () -{ - int log = 0, ckpt = 0; - int ret = sqlite3_wal_checkpoint_v2 (mConnection, nullptr, SQLITE_CHECKPOINT_PASSIVE, &log, &ckpt); - - if (ret != SQLITE_OK) - { - WriteLog ((ret == SQLITE_LOCKED) ? lsTRACE : lsWARNING, SqliteDatabase) << "WAL(" - << sqlite3_db_filename (mConnection, "main") << "): error " << ret; - } - else - WriteLog (lsTRACE, SqliteDatabase) << "WAL(" << sqlite3_db_filename (mConnection, "main") << - "): frames=" << log << ", written=" << ckpt; - - { - ScopedLockType sl (m_walMutex); - walRunning = false; - } -} - -sqlite3_stmt* SqliteStatement::peekStatement () -{ - return statement; -} - -int SqliteStatement::bind (int position, const void* data, int length) -{ - return sqlite3_bind_blob (statement, position, data, length, SQLITE_TRANSIENT); -} - -int SqliteStatement::bindStatic (int position, const void* data, int length) -{ - return sqlite3_bind_blob (statement, position, data, length, SQLITE_STATIC); -} - -int SqliteStatement::bindStatic (int position, Blob const& value) -{ - return sqlite3_bind_blob (statement, position, &value.front (), value.size (), SQLITE_STATIC); -} - -int SqliteStatement::bind (int position, std::uint32_t value) -{ - return sqlite3_bind_int64 (statement, position, static_cast (value)); -} - -int SqliteStatement::bind (int position, std::string const& value) -{ - return sqlite3_bind_text (statement, position, value.data (), value.size (), SQLITE_TRANSIENT); -} - -int SqliteStatement::bindStatic (int position, std::string const& value) -{ - return sqlite3_bind_text (statement, position, value.data (), value.size (), SQLITE_STATIC); -} - -int SqliteStatement::bind (int position) -{ - return sqlite3_bind_null (statement, position); -} - -int SqliteStatement::size (int column) -{ - return sqlite3_column_bytes (statement, column); -} - -const void* SqliteStatement::peekBlob (int column) -{ - return sqlite3_column_blob (statement, column); -} - -Blob SqliteStatement::getBlob (int column) -{ - int size = sqlite3_column_bytes (statement, column); - Blob ret (size); - memcpy (& (ret.front ()), sqlite3_column_blob (statement, column), size); - return ret; -} - -std::string SqliteStatement::getString (int column) -{ - return reinterpret_cast (sqlite3_column_text (statement, column)); -} - -const char* SqliteStatement::peekString (int column) -{ - return reinterpret_cast (sqlite3_column_text (statement, column)); -} - -std::uint32_t SqliteStatement::getUInt32 (int column) -{ - return static_cast (sqlite3_column_int64 (statement, column)); -} - -std::int64_t SqliteStatement::getInt64 (int column) -{ - return sqlite3_column_int64 (statement, column); -} - -int SqliteStatement::step () -{ - return sqlite3_step (statement); -} - -int SqliteStatement::reset () -{ - return sqlite3_reset (statement); -} - -bool SqliteStatement::isOk (int j) -{ - return j == SQLITE_OK; -} - -bool SqliteStatement::isDone (int j) -{ - return j == SQLITE_DONE; -} - -bool SqliteStatement::isRow (int j) -{ - return j == SQLITE_ROW; -} - -bool SqliteStatement::isError (int j) -{ - switch (j) - { - case SQLITE_OK: - case SQLITE_ROW: - case SQLITE_DONE: - return false; - - default: - return true; - } -} - -std::string SqliteStatement::getError (int j) -{ - return sqlite3_errstr (j); -} - -} // ripple diff --git a/src/ripple/app/data/SqliteDatabase.h b/src/ripple/app/data/SqliteDatabase.h deleted file mode 100644 index 2b0191b514..0000000000 --- a/src/ripple/app/data/SqliteDatabase.h +++ /dev/null @@ -1,152 +0,0 @@ -//------------------------------------------------------------------------------ -/* - This file is part of rippled: https://github.com/ripple/rippled - Copyright (c) 2012, 2013 Ripple Labs Inc. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ -//============================================================================== - -#ifndef RIPPLE_APP_DATA_SQLITEDATABASE_H_INCLUDED -#define RIPPLE_APP_DATA_SQLITEDATABASE_H_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace ripple { - -class SqliteDatabase - : public Database - , private beast::Thread -{ -public: - explicit SqliteDatabase (char const* host); - ~SqliteDatabase (); - - void connect (); - void disconnect (); - - // returns true if the query went ok - bool executeSQL (const char* sql, bool fail_okay); - - // tells you how many rows were changed by an update or insert - int getNumRowsAffected (); - - // returns false if there are no results - bool startIterRows (bool finalize); - void endIterRows (); - - // call this after you executeSQL - // will return false if there are no more rows - bool getNextRow (bool finalize); - - bool getNull (int colIndex); - char* getStr (int colIndex, std::string& retStr); - std::int32_t getInt (int colIndex); - float getFloat (int colIndex); - bool getBool (int colIndex); - // returns amount stored in buf - int getBinary (int colIndex, unsigned char* buf, int maxSize); - Blob getBinary (int colIndex); - std::uint64_t getBigInt (int colIndex); - - sqlite3* peekConnection () - { - return mConnection; - } - virtual bool setupCheckpointing (JobQueue*); - virtual SqliteDatabase* getSqliteDB () - { - return this; - } - - void doHook (const char* db, int walSize); - - int getKBUsedDB (); - int getKBUsedAll (); - -private: - - void run (); - void runWal (); - - typedef std::mutex LockType; - typedef std::lock_guard ScopedLockType; - LockType m_walMutex; - - sqlite3* mConnection; - sqlite3_stmt* mCurrentStmt; - bool mMoreRows; - - JobQueue* mWalQ; - bool walRunning; -}; - -//------------------------------------------------------------------------------ - -class SqliteStatement -{ -private: - SqliteStatement (const SqliteStatement&); // no implementation - SqliteStatement& operator= (const SqliteStatement&); // no implementation - -protected: - sqlite3_stmt* statement; - -public: - SqliteStatement (SqliteDatabase* db, const char* statement); - SqliteStatement (SqliteDatabase* db, std::string const& statement); - ~SqliteStatement (); - - sqlite3_stmt* peekStatement (); - - // positions start at 1 - int bind (int position, const void* data, int length); - int bindStatic (int position, const void* data, int length); - int bindStatic (int position, Blob const& value); - - int bind (int position, std::string const& value); - int bindStatic (int position, std::string const& value); - - int bind (int position, std::uint32_t value); - int bind (int position); - - // columns start at 0 - int size (int column); - - const void* peekBlob (int column); - Blob getBlob (int column); - - std::string getString (int column); - const char* peekString (int column); - std::uint32_t getUInt32 (int column); - std::int64_t getInt64 (int column); - - int step (); - int reset (); - - // translate return values of step and reset - bool isOk (int); - bool isDone (int); - bool isRow (int); - bool isError (int); - std::string getError (int); -}; - -} // ripple - -#endif diff --git a/src/ripple/app/peers/UniqueNodeList.cpp b/src/ripple/app/peers/UniqueNodeList.cpp index efe850ea9a..f7338fa8e2 100644 --- a/src/ripple/app/peers/UniqueNodeList.cpp +++ b/src/ripple/app/peers/UniqueNodeList.cpp @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include diff --git a/src/ripple/rpc/handlers/GetCounts.cpp b/src/ripple/rpc/handlers/GetCounts.cpp index 249d171408..5be73ecdc4 100644 --- a/src/ripple/rpc/handlers/GetCounts.cpp +++ b/src/ripple/rpc/handlers/GetCounts.cpp @@ -19,7 +19,6 @@ #include #include -#include #include #include #include diff --git a/src/ripple/unity/app2.cpp b/src/ripple/unity/app2.cpp index 5c4a47d246..d1b4cb8171 100644 --- a/src/ripple/unity/app2.cpp +++ b/src/ripple/unity/app2.cpp @@ -19,9 +19,7 @@ #include -#include #include -#include #include #include #include