CCF
Loading...
Searching...
No Matches
hooks.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
5#include "ccf/kv/version.h"
6
7#include <functional>
8#include <memory>
9
10namespace ccf::kv
11{
12 class ConfigurableConsensus;
13
15 {
16 public:
17 virtual void call(ConfigurableConsensus*) = 0;
18 virtual ~ConsensusHook() = default;
19 };
20
21 using ConsensusHookPtr = std::unique_ptr<ConsensusHook>;
22 using ConsensusHookPtrs = std::vector<ConsensusHookPtr>;
23
25 template <typename TWrites>
26 using CommitHook = std::function<void(Version, const TWrites&)>;
27
28 template <typename TWrites>
29 using MapHook =
30 std::function<std::unique_ptr<ConsensusHook>(Version, const TWrites&)>;
31}
Definition kv_types.h:229
Definition hooks.h:15
virtual void call(ConfigurableConsensus *)=0
virtual ~ConsensusHook()=default
Definition app_interface.h:19
std::unique_ptr< ConsensusHook > ConsensusHookPtr
Definition hooks.h:21
std::function< void(Version, const TWrites &)> CommitHook
Signature for transaction commit handlers.
Definition hooks.h:26
uint64_t Version
Definition version.h:8
std::function< std::unique_ptr< ConsensusHook >(Version, const TWrites &)> MapHook
Definition hooks.h:30
std::vector< ConsensusHookPtr > ConsensusHookPtrs
Definition hooks.h:22