DBDriver: added getDatabaseVersion() method

This commit is contained in:
matlabbe
2015-07-26 17:45:48 -04:00
parent b358ffd45d
commit d67500d7bf
6 changed files with 25 additions and 3 deletions
+2
View File
@@ -85,6 +85,7 @@ public:
void closeConnection(); void closeConnection();
bool isConnected() const; bool isConnected() const;
long getMemoryUsed() const; // In bytes long getMemoryUsed() const; // In bytes
std::string getDatabaseVersion() const;
void executeNoResult(const std::string & sql) const; void executeNoResult(const std::string & sql) const;
@@ -116,6 +117,7 @@ private:
virtual void disconnectDatabaseQuery() = 0; virtual void disconnectDatabaseQuery() = 0;
virtual bool isConnectedQuery() const = 0; virtual bool isConnectedQuery() const = 0;
virtual long getMemoryUsedQuery() const = 0; // In bytes virtual long getMemoryUsedQuery() const = 0; // In bytes
virtual bool getDatabaseVersionQuery(std::string & version) const = 0;
virtual void executeNoResultQuery(const std::string & sql) const = 0; virtual void executeNoResultQuery(const std::string & sql) const = 0;
+1
View File
@@ -130,6 +130,7 @@ public:
std::map<int, std::string> getAllLabels() const; std::map<int, std::string> getAllLabels() const;
bool setUserData(int id, const cv::Mat & data); bool setUserData(int id, const cv::Mat & data);
int getDatabaseMemoryUsed() const; // in bytes int getDatabaseMemoryUsed() const; // in bytes
std::string getDatabaseVersion() const;
double getDbSavingTime() const; double getDbSavingTime() const;
Transform getOdomPose(int signatureId, bool lookInDatabase = false) const; Transform getOdomPose(int signatureId, bool lookInDatabase = false) const;
bool getNodeInfo(int signatureId, bool getNodeInfo(int signatureId,
+9
View File
@@ -99,6 +99,15 @@ long DBDriver::getMemoryUsed() const
return bytes; return bytes;
} }
std::string DBDriver::getDatabaseVersion() const
{
std::string version = "0.0.0";
_dbSafeAccessMutex.lock();
getDatabaseVersionQuery(version);
_dbSafeAccessMutex.unlock();
return version;
}
void DBDriver::mainLoop() void DBDriver::mainLoop()
{ {
this->emptyTrashes(); this->emptyTrashes();
+2 -2
View File
@@ -269,7 +269,7 @@ int DBDriverSqlite3::loadOrSaveDb(sqlite3 *pInMemory, const std::string & fileNa
return rc; return rc;
} }
bool DBDriverSqlite3::getVersion(std::string & version) const bool DBDriverSqlite3::getDatabaseVersionQuery(std::string & version) const
{ {
version = "0.0.0"; version = "0.0.0";
if(_ppDb) if(_ppDb)
@@ -370,7 +370,7 @@ bool DBDriverSqlite3::connectDatabaseQuery(const std::string & url, bool overwri
schema = uHex2Str(schema); schema = uHex2Str(schema);
this->executeNoResultQuery(schema.c_str()); this->executeNoResultQuery(schema.c_str());
} }
UASSERT(this->getVersion(_version)); // must be true! UASSERT(this->getDatabaseVersionQuery(_version)); // must be true!
UINFO("Database version = %s", _version.c_str()); UINFO("Database version = %s", _version.c_str());
//Set database optimizations //Set database optimizations
+1 -1
View File
@@ -53,6 +53,7 @@ private:
virtual void disconnectDatabaseQuery(); virtual void disconnectDatabaseQuery();
virtual bool isConnectedQuery() const; virtual bool isConnectedQuery() const;
virtual long getMemoryUsedQuery() const; // In bytes virtual long getMemoryUsedQuery() const; // In bytes
virtual bool getDatabaseVersionQuery(std::string & version) const;
virtual void executeNoResultQuery(const std::string & sql) const; virtual void executeNoResultQuery(const std::string & sql) const;
@@ -101,7 +102,6 @@ private:
private: private:
void loadLinksQuery(std::list<Signature *> & signatures) const; void loadLinksQuery(std::list<Signature *> & signatures) const;
int loadOrSaveDb(sqlite3 *pInMemory, const std::string & fileName, int isSave) const; int loadOrSaveDb(sqlite3 *pInMemory, const std::string & fileName, int isSave) const;
bool getVersion(std::string &) const;
private: private:
sqlite3 * _ppDb; sqlite3 * _ppDb;
+10
View File
@@ -1170,6 +1170,16 @@ int Memory::getDatabaseMemoryUsed() const
return memoryUsed; return memoryUsed;
} }
std::string Memory::getDatabaseVersion() const
{
std::string version = "0.0.0";
if(_dbDriver)
{
version = _dbDriver->getDatabaseVersion();
}
return version;
}
double Memory::getDbSavingTime() const double Memory::getDbSavingTime() const
{ {
return _dbDriver?_dbDriver->getEmptyTrashesTime():0; return _dbDriver?_dbDriver->getEmptyTrashesTime():0;