From f6675ccdd7a5997def3c4656f0e2c5dbbbed1fc8 Mon Sep 17 00:00:00 2001 From: Ebus-at-dockstar Date: Fri, 25 Jul 2014 22:13:55 +0200 Subject: embed xexpr-path --- datastore-leveldb/src/db.cpp | 74 -------------------------------------------- 1 file changed, 74 deletions(-) delete mode 100644 datastore-leveldb/src/db.cpp (limited to 'datastore-leveldb/src/db.cpp') diff --git a/datastore-leveldb/src/db.cpp b/datastore-leveldb/src/db.cpp deleted file mode 100644 index 991a82e..0000000 --- a/datastore-leveldb/src/db.cpp +++ /dev/null @@ -1,74 +0,0 @@ -#include "db.h" - -#include -#include -#include -#include -#include - -static std::unordered_map dbs; -static std::mutex getDBmutex; - -static bool sensor_name_is_sane(std::string& name) { - for (auto it = name.begin(); it != name.end(); ++it) { - if (not ((*it >= '0' and *it <= '9') or - (*it >= 'A' and *it <= 'Z') or - (*it >= 'a' and *it <= 'z') or - (*it == '.'))) { - return false; - } - } - return true; -} - -std::string db_make_key(const uint64_t timestamp) { - std::stringstream key; - key << "ts-"; - key << std::setfill('0') << std::setw(20) << timestamp; - return key.str(); -} - -leveldb::DB *db_get(std::string& name) { - getDBmutex.lock(); - if (dbs.find(name) == dbs.end()) { - if (not sensor_name_is_sane(name)) { - getDBmutex.unlock(); - return nullptr; - } - leveldb::DB *db; - leveldb::Options options; - options.create_if_missing = true; - leveldb::Status status = leveldb::DB::Open(options, "data/"+name, &db); - if (not status.ok()) { - std::cout << status.ToString() << std::endl; - getDBmutex.unlock(); - return nullptr; - } - dbs[name] = db; - getDBmutex.unlock(); - return db; - } else { - getDBmutex.unlock(); - return dbs.at(name); - } -} - - -bool db_insert(std::string& name, const uint64_t timestamp, std::string& value) { - leveldb::DB *db = db_get(name); - if (db == nullptr) return false; - - auto status = db->Put(leveldb::WriteOptions(), db_make_key(timestamp), value); - return status.ok(); -} - -void db_close() { - auto it = dbs.begin(); - while (it != dbs.end()) { - std::cout << "Close Database: " << (*it).first << std::endl; - delete (*it).second; - dbs.erase(it++); //post increment! - } - std::cout << std::endl; -} - -- cgit v1.2.1