summaryrefslogtreecommitdiff
path: root/datastore-leveldb/src/db.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'datastore-leveldb/src/db.cpp')
-rw-r--r--datastore-leveldb/src/db.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/datastore-leveldb/src/db.cpp b/datastore-leveldb/src/db.cpp
index e307535..ce57772 100644
--- a/datastore-leveldb/src/db.cpp
+++ b/datastore-leveldb/src/db.cpp
@@ -5,6 +5,10 @@
#include <mutex>
#include <unordered_map>
#include <sstream>
+extern "C" {
+#include <dirent.h>
+}
+
static std::unordered_map<std::string,leveldb::DB*> dbs;
static std::mutex getDBmutex;
@@ -72,3 +76,17 @@ void db_close() {
std::cout << std::endl;
}
+std::list<std::string> * db_list() {
+ std::list<std::string> * list = new std::list<std::string>();
+ struct dirent * dp;
+ DIR* dirp = opendir("data");
+ if (dirp != NULL) {
+ while ((dp = readdir(dirp)) != NULL) {
+ if (dp->d_name[0] != '.')
+ list->push_back(std::string(dp->d_name));
+ }
+ (void)closedir(dirp);
+ }
+ return list;
+}
+