Prepare to fully canonicalize views
This commit is contained in:
@@ -86,16 +86,13 @@ struct __attribute__((__visibility__("default"))) VersionedMap {
|
||||
/** The version of the most recent call to `setOldestVersion`. */
|
||||
int64_t getOldestVersion() const;
|
||||
|
||||
/** Iterates through a canonicalized[1] view of all the mutations
|
||||
/** Iterates through a canonicalized view of all the mutations
|
||||
* from `oldestVersion` to the iterator's version. There may be mutations from
|
||||
* versions < `oldestVersion`, but they won't affect the result, and can be
|
||||
* ignored if desired. It's thread-safe to operate on an iterator concurrently
|
||||
* with any method of `VersionedMap`, as long as it's not invalidated by
|
||||
* `setOldestVersion`.
|
||||
* @warning must not outlive its `VersionedMap`.
|
||||
*
|
||||
* [1]: Clears at different versions may be adjacent. This is necessary for
|
||||
* precisely tracking at what version the mutations take effect.
|
||||
*/
|
||||
struct Iterator {
|
||||
|
||||
@@ -114,7 +111,10 @@ struct __attribute__((__visibility__("default"))) VersionedMap {
|
||||
int param1Len;
|
||||
int param2Len;
|
||||
MutationType type;
|
||||
int64_t version;
|
||||
/** The set of keys modified by this mutation have not been modified since
|
||||
* this version. They were not necessarily modified at this version
|
||||
* though. */
|
||||
int64_t notModifiedSince;
|
||||
};
|
||||
|
||||
/** iter must not be `end()`. Memory pointed-to by return value is valid as
|
||||
|
Reference in New Issue
Block a user