Skip applied mutations in Facade::setOldestVersion
This commit is contained in:
8
Facade.h
8
Facade.h
@@ -10,7 +10,8 @@ using String = std::basic_string<uint8_t>;
|
|||||||
|
|
||||||
struct Facade {
|
struct Facade {
|
||||||
|
|
||||||
explicit Facade(int64_t version) : versioned{version} {}
|
explicit Facade(int64_t version)
|
||||||
|
: unversionedVersion(version), versioned{version} {}
|
||||||
|
|
||||||
struct View {
|
struct View {
|
||||||
|
|
||||||
@@ -132,6 +133,9 @@ struct Facade {
|
|||||||
for (auto iter = versioned.begin(version), end = versioned.end(version);
|
for (auto iter = versioned.begin(version), end = versioned.end(version);
|
||||||
iter != end; ++iter) {
|
iter != end; ++iter) {
|
||||||
auto m = *iter;
|
auto m = *iter;
|
||||||
|
if (m.version < unversionedVersion) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
switch (m.type) {
|
switch (m.type) {
|
||||||
case weaselab::VersionedMap::Set:
|
case weaselab::VersionedMap::Set:
|
||||||
unversioned[String(m.param1, m.param1Len)] =
|
unversioned[String(m.param1, m.param1Len)] =
|
||||||
@@ -152,6 +156,7 @@ struct Facade {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unversionedVersion = version;
|
||||||
versioned.setOldestVersion(version);
|
versioned.setOldestVersion(version);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -190,6 +195,7 @@ struct Facade {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int64_t unversionedVersion;
|
||||||
std::map<String, String> unversioned;
|
std::map<String, String> unversioned;
|
||||||
weaselab::VersionedMap versioned;
|
weaselab::VersionedMap versioned;
|
||||||
};
|
};
|
Reference in New Issue
Block a user