summaryrefslogtreecommitdiff
path: root/src/cstore/cstore.cpp
diff options
context:
space:
mode:
authorAn-Cheng Huang <ancheng@vyatta.com>2011-01-05 16:44:31 -0800
committerAn-Cheng Huang <ancheng@vyatta.com>2011-01-05 16:52:12 -0800
commitd4111b01462641baa21978a78390215987a5958a (patch)
treee6a53a4f19f8b197aeb45879d90384b8fd2538d1 /src/cstore/cstore.cpp
parent15022218e4e6983c661ccf1e7beefd598a96e628 (diff)
downloadvyatta-cfg-d4111b01462641baa21978a78390215987a5958a.tar.gz
vyatta-cfg-d4111b01462641baa21978a78390215987a5958a.zip
fix for bug 6641
* change shell API to only use "edit level" when needed. * add factory functions for cstore creation to simplify code. (cherry picked from commit 2208bfef1004295d3227492c6a3e9d7b36903db5)
Diffstat (limited to 'src/cstore/cstore.cpp')
-rw-r--r--src/cstore/cstore.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/cstore/cstore.cpp b/src/cstore/cstore.cpp
index 2aefed6..b6b55be 100644
--- a/src/cstore/cstore.cpp
+++ b/src/cstore/cstore.cpp
@@ -30,6 +30,7 @@
#include <cli_cstore.h>
#include <cstore/cstore.hpp>
+#include <cstore/unionfs/cstore-unionfs.hpp>
#include <cstore/cstore-varref.hpp>
#include <cnode/cnode.hpp>
#include <cnode/cnode-algorithm.hpp>
@@ -95,6 +96,22 @@ Cstore::Cstore(string& env)
}
+////// factory functions
+// for "current session" (see UnionfsCstore constructor for details)
+Cstore *
+Cstore::createCstore(bool use_edit_level)
+{
+ return (new UnionfsCstore(use_edit_level));
+}
+
+// for "specific session" (see UnionfsCstore constructor for details)
+Cstore *
+Cstore::createCstore(const string& session_id, string& env)
+{
+ return (new UnionfsCstore(session_id, env));
+}
+
+
////// public interface
/* check if specified "logical path" corresponds to a valid template.
* validate_vals: whether to validate "values" along specified path.