Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
MimicsSnapshots.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_MIMICS_MIMICSSNAPSHOTS_HPP_
2#define IV_SRC_MIMICS_MIMICSSNAPSHOTS_HPP_
3
4#include "core/types.hpp"
6
7#include <map>
8#include <memory>
9#include <vector>
10
11namespace iv::mimics
12{
13
15{
16public:
17 explicit MimicSnapshots(const iv::types::mimicId &mimicId,
18 const std::shared_ptr<iv::file::xml::File> &initialSnapshot);
19
20 std::shared_ptr<iv::file::xml::File> undoSnapshot(bool updateCurrentIndex = true);
21 std::shared_ptr<iv::file::xml::File> redoSnapshot(bool updateCurrentIndex = true);
22
23 void addSnapshot(const std::shared_ptr<iv::file::xml::File> &snapshot);
24
25 bool currentSnapshotIsLatest() const;
26
27private:
30 std::vector<std::shared_ptr<iv::file::xml::File>> m_snapshots;
31
32 struct Constants
33 {
34 static constexpr uint64_t maxSnapshots {255};
35 };
36};
37
39{
40public:
41 MimicsSnapshots() = default;
42 ~MimicsSnapshots() = default;
43
44 std::shared_ptr<MimicSnapshots> addMimicSnapshots(const iv::types::mimicId &mimicId,
45 const std::shared_ptr<iv::file::xml::File> &initialSnapshot);
46 std::shared_ptr<MimicSnapshots> getMimicSnapshots(const iv::types::mimicId &mimicId);
47
48private:
49 std::map<iv::types::mimicId, std::shared_ptr<MimicSnapshots>> m_snapshots;
50};
51
52}// namespace iv::mimics
53
54#endif//IV_SRC_MIMICS_MIMICSSNAPSHOTS_HPP_
Definition MimicsSnapshots.hpp:15
void addSnapshot(const std::shared_ptr< iv::file::xml::File > &snapshot)
Definition MimicsSnapshots.cpp:46
MimicSnapshots(const iv::types::mimicId &mimicId, const std::shared_ptr< iv::file::xml::File > &initialSnapshot)
Definition MimicsSnapshots.cpp:6
std::shared_ptr< iv::file::xml::File > undoSnapshot(bool updateCurrentIndex=true)
Definition MimicsSnapshots.cpp:12
iv::types::mimicId m_mimicId
Definition MimicsSnapshots.hpp:28
bool currentSnapshotIsLatest() const
Definition MimicsSnapshots.cpp:67
std::shared_ptr< iv::file::xml::File > redoSnapshot(bool updateCurrentIndex=true)
Definition MimicsSnapshots.cpp:29
uint64_t m_currentSnapshotIndex
Definition MimicsSnapshots.hpp:29
std::vector< std::shared_ptr< iv::file::xml::File > > m_snapshots
Definition MimicsSnapshots.hpp:30
Definition MimicsSnapshots.hpp:39
std::shared_ptr< MimicSnapshots > addMimicSnapshots(const iv::types::mimicId &mimicId, const std::shared_ptr< iv::file::xml::File > &initialSnapshot)
Definition MimicsSnapshots.cpp:73
std::shared_ptr< MimicSnapshots > getMimicSnapshots(const iv::types::mimicId &mimicId)
Definition MimicsSnapshots.cpp:87
std::map< iv::types::mimicId, std::shared_ptr< MimicSnapshots > > m_snapshots
Definition MimicsSnapshots.hpp:49
Definition GeneratorPmsBuilders.cpp:9
std::string mimicId
Definition types.hpp:72
Definition MimicsSnapshots.hpp:33
static constexpr uint64_t maxSnapshots
Definition MimicsSnapshots.hpp:34