diff --git a/src/persist_manager.cpp b/src/persist_manager.cpp index 714a8749b6a..ab4aa6ea9cf 100644 --- a/src/persist_manager.cpp +++ b/src/persist_manager.cpp @@ -17,6 +17,17 @@ #include +persist_manager::persist_manager() + : in_transaction_(false) + , contexts_() +{} + +persist_manager::~persist_manager() { + cancel_transaction(); + for (context_map::iterator i = contexts_.begin(); i != contexts_.end(); ++i) + delete (i->second); +} + persist_context &persist_manager::get_context(const std::string &ns) { persist_context::name_space name(ns,true); diff --git a/src/persist_manager.hpp b/src/persist_manager.hpp index 632e0e86f97..dfe48b0b840 100644 --- a/src/persist_manager.hpp +++ b/src/persist_manager.hpp @@ -15,7 +15,10 @@ #ifndef PERSIST_MANAGER_HPP_INCLUDED #define PERSIST_MANAGER_HPP_INCLUDED -#include "persist_context.hpp" +#include +#include + +class persist_context; class persist_manager { protected: @@ -28,12 +31,9 @@ class persist_manager { bool end_transaction(); bool cancel_transaction(); - persist_manager() : in_transaction_(false),contexts_() {} - virtual ~persist_manager() { - cancel_transaction(); - for (context_map::iterator i = contexts_.begin(); i != contexts_.end(); ++i) - delete (i->second); - } + persist_manager(); + virtual ~persist_manager(); + persist_context &get_context(const std::string &ns); };