summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/components/kvdb
diff options
context:
space:
mode:
Diffstat (limited to 'sca-cpp/trunk/components/kvdb')
-rw-r--r--sca-cpp/trunk/components/kvdb/client-test.cpp4
-rw-r--r--sca-cpp/trunk/components/kvdb/kvdb.cpp2
-rw-r--r--sca-cpp/trunk/components/kvdb/leveldb.hpp11
3 files changed, 14 insertions, 3 deletions
diff --git a/sca-cpp/trunk/components/kvdb/client-test.cpp b/sca-cpp/trunk/components/kvdb/client-test.cpp
index fc31a99e69..5f0ef21d00 100644
--- a/sca-cpp/trunk/components/kvdb/client-test.cpp
+++ b/sca-cpp/trunk/components/kvdb/client-test.cpp
@@ -93,8 +93,8 @@ bool testNoSqlDb() {
struct getLoop {
const string path;
const value entry;
- http::CURLSession cs;
- getLoop(const string& path, const value& entry, http::CURLSession cs) : path(path), entry(entry), cs(cs) {
+ http::CURLSession& cs;
+ getLoop(const string& path, const value& entry, http::CURLSession& cs) : path(path), entry(entry), cs(cs) {
}
const bool operator()() const {
const failable<value> val = http::get(uri + path, cs);
diff --git a/sca-cpp/trunk/components/kvdb/kvdb.cpp b/sca-cpp/trunk/components/kvdb/kvdb.cpp
index 24a2fb5a16..0df8f13882 100644
--- a/sca-cpp/trunk/components/kvdb/kvdb.cpp
+++ b/sca-cpp/trunk/components/kvdb/kvdb.cpp
@@ -102,7 +102,7 @@ private:
*/
const failable<value> start(unused const list<value>& params) {
// Connect to the configured database and table
- const value dbname = ((lambda<value(list<value>)>)car(params))(list<value>());
+ const value dbname = ((lambda<const value(list<value>&)>)car(params))(list<value>());
leveldb::LevelDB& cdb = *(new (gc_new<leveldb::LevelDB>()) leveldb::LevelDB(dbname));
// Return the component implementation lambda function
diff --git a/sca-cpp/trunk/components/kvdb/leveldb.hpp b/sca-cpp/trunk/components/kvdb/leveldb.hpp
index 8105f86ec4..05a89a76f7 100644
--- a/sca-cpp/trunk/components/kvdb/leveldb.hpp
+++ b/sca-cpp/trunk/components/kvdb/leveldb.hpp
@@ -121,6 +121,17 @@ public:
st.st_ino = c.st.st_ino;
}
+ const LevelDB& operator=(const LevelDB& c) {
+ debug("leveldb::leveldb::operator=");
+ if(this == &c)
+ return *this;
+ owner = false;
+ name = c.name;
+ fd = c.fd;
+ st.st_ino = c.st.st_ino;
+ return *this;
+ }
+
~LevelDB() {
debug("leveldb::~leveldb");
if (!owner)