CCF
Loading...
Searching...
No Matches
untyped_map_diff.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
7#include "ccf/kv/untyped.h"
8#include "ccf/kv/version.h"
9
10#include <functional>
11#include <optional>
12#include <string>
13
14namespace ccf::kv::untyped
15{
16 struct ChangeSet;
17
19 {
20 public:
23
25 std::function<void(const KeyType& k, const std::optional<ValueType>& V)>;
26
28 std::function<bool(const KeyType& k, const std::optional<ValueType>& V)>;
29
30 protected:
32 std::string map_name;
33
35
36 public:
38
39 std::optional<std::optional<ValueType>> get(const KeyType& key);
40
41 bool has(const KeyType& key);
42
43 bool is_deleted(const KeyType& key);
44
45 size_t size();
46
47 void foreach(const ElementVisitorWithEarlyOut& fn);
48
49 // Sub-range variant of foreach. Visits the range of keys in [from, to).
50 void range(
51 const ElementVisitor& fn,
52 const std::optional<KeyType>& from,
53 const std::optional<KeyType>& to);
54 };
55}
Definition abstract_handle.h:8
Definition untyped_map_diff.h:19
bool has(const KeyType &key)
Definition untyped_map_diff.cpp:43
std::string map_name
Definition untyped_map_diff.h:32
std::function< bool(const KeyType &k, const std::optional< ValueType > &V)> ElementVisitorWithEarlyOut
Definition untyped_map_diff.h:28
bool is_deleted(const KeyType &key)
Definition untyped_map_diff.cpp:59
ccf::kv::serialisers::SerialisedEntry ValueType
Definition untyped_map_diff.h:22
std::function< void(const KeyType &k, const std::optional< ValueType > &V)> ElementVisitor
Definition untyped_map_diff.h:25
ccf::kv::untyped::Write & writes
Definition untyped_map_diff.h:31
std::optional< std::optional< ValueType > > get(const KeyType &key)
Definition untyped_map_diff.cpp:28
void foreach_(const ElementVisitorWithEarlyOut &fn)
Definition untyped_map_diff.cpp:10
size_t size()
Definition untyped_map_diff.cpp:80
ccf::kv::serialisers::SerialisedEntry KeyType
Definition untyped_map_diff.h:21
void range(const ElementVisitor &fn, const std::optional< KeyType > &from, const std::optional< KeyType > &to)
Definition untyped_map_diff.cpp:92
ccf::ByteVector SerialisedEntry
Definition serialised_entry.h:8
Definition untyped.h:12
std::map< ccf::kv::serialisers::SerialisedEntry, std::optional< ccf::kv::serialisers::SerialisedEntry > > Write
Definition untyped.h:16
SerialisedEntry V
Definition untyped_change_set.h:23
Definition untyped_change_set.h:43