24 #include "MCContainers.hpp" 26 #include <boost/unordered_map.hpp> 42 typedef boost::unordered_map<std::string, MCBinaryData*> StrBinaryDataPtrMap;
45 typedef boost::shared_ptr<MCDataContainer> DataContainerSPtr;
47 typedef boost::shared_ptr<MCDataStorage> DataStorageSPtr;
50 typedef boost::unordered_map<std::string, DataContainerSPtr> StrDataContainerSPtrMap;
71 MCDataStorage(
const std::string& name,
bool portable =
false);
82 bool IsPortable()
const;
93 bool IsCompact()
const;
102 std::string GetName()
const;
111 void SetName(
const std::string& name);
118 void DumpContainerNames()
const;
129 bool LoadFromFile(
const std::string& file_name);
140 bool SaveToFile(
const std::string& file_name);
173 void LoadFromInputStream(std::istream& input_stream,
unsigned int max_bytes);
182 void SaveToOutputStream(std::ostream& output_stream);
204 MC::StringList GetContainerNames()
const;
215 MC::DataContainerSPtr CreateContainer(
const std::string& container_name);
226 MC::DataContainerSPtr GetContainer(
const std::string& container_name);
236 void OptimizeCachedContainers();
245 void RemoveContainer(
const std::string& container_name);
261 static void SetVerbose(
bool new_state);
270 static bool IsVerbose();
bool Portable
Data storage type (portable/non-portable)
Data storage with file support.
std::string Name
Storage name.
MC::StrDataContainerSPtrMap DataContainers
Data containers.
MC::StrBinaryDataPtrMap BinaryContainers
Data containers in binary form.
static std::string VersionID
Version ID string.