CCF
Loading...
Searching...
No Matches
historical_queries_adapter.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/node_context.h"
8#include "ccf/tx_id.h"
9#include "ccf/tx_status.h"
10
11namespace ccf::kv
12{
13 class Consensus;
14}
15
17{
18 using CheckAvailability = std::function<bool(
19 ccf::View view, ccf::SeqNo seqno, std::string& error_reason)>;
20
22 std::function<void(ccf::endpoints::EndpointContext& args, StatePtr state)>;
23
24 using HandleReadOnlyHistoricalQuery = std::function<void(
26
28
29 using CommandTxIDExtractor = std::function<std::optional<ccf::TxID>(
31
32 using ReadOnlyTxIDExtractor = std::function<std::optional<ccf::TxID>(
34
36 std::function<std::optional<ccf::TxID>(endpoints::EndpointContext& args)>;
37
38 std::optional<ccf::TxID> txid_from_header(
40
49
50 using ErrorHandler = std::function<void(
52 std::string reason,
54
55 using ReadOnlyErrorHandler = std::function<void(
57 std::string reason,
59
62 std::string reason,
64
65 enum class HistoricalTxStatus : uint8_t
66 {
67 Error,
69 Invalid,
70 Valid
71 };
72
74 ccf::View view, ccf::SeqNo seqno, std::string& error_reason)>;
75
78 ccf::View view,
79 ccf::SeqNo seqno,
80 std::string& error_reason);
81
84 ccf::AbstractNodeContext& node_context,
85 const CheckHistoricalTxStatus& available,
86 const ReadOnlyTxIDExtractor& extractor = txid_from_header,
88
91 ccf::AbstractNodeContext& node_context,
92 const CheckHistoricalTxStatus& available,
93 const TxIDExtractor& extractor = txid_from_header,
94 const ErrorHandler& ehandler = default_error_handler);
95}
Definition kv_types.h:367
std::function< void(ReadOnlyEndpointContext &args)> ReadOnlyEndpointFunction
Definition endpoint_context.h:96
std::function< void(EndpointContext &args)> EndpointFunction
Definition endpoint_context.h:66
Definition historical_queries_adapter.h:17
std::function< void(HistoricalQueryErrorCode err, std::string reason, endpoints::ReadOnlyEndpointContext &args)> ReadOnlyErrorHandler
Definition historical_queries_adapter.h:58
HandleReadWriteHistoricalQuery HandleHistoricalQuery
Definition historical_queries_adapter.h:27
std::function< std::optional< ccf::TxID >(endpoints::CommandEndpointContext &args)> CommandTxIDExtractor
Definition historical_queries_adapter.h:30
std::function< std::optional< ccf::TxID >(endpoints::ReadOnlyEndpointContext &args)> ReadOnlyTxIDExtractor
Definition historical_queries_adapter.h:33
std::shared_ptr< State > StatePtr
Definition historical_queries_interface.h:41
void default_error_handler(HistoricalQueryErrorCode err, std::string reason, endpoints::CommandEndpointContext &args)
Definition historical_queries_adapter.cpp:332
std::optional< ccf::TxID > txid_from_header(endpoints::CommandEndpointContext &args)
Definition historical_queries_adapter.cpp:299
std::function< void(HistoricalQueryErrorCode err, std::string reason, endpoints::EndpointContext &args)> ErrorHandler
Definition historical_queries_adapter.h:53
std::function< void(ccf::endpoints::ReadOnlyEndpointContext &args, StatePtr state)> HandleReadOnlyHistoricalQuery
Definition historical_queries_adapter.h:25
std::function< void(ccf::endpoints::EndpointContext &args, StatePtr state)> HandleReadWriteHistoricalQuery
Definition historical_queries_adapter.h:22
std::function< HistoricalTxStatus(ccf::View view, ccf::SeqNo seqno, std::string &error_reason)> CheckHistoricalTxStatus
Definition historical_queries_adapter.h:74
ccf::endpoints::EndpointFunction read_write_adapter_v4(const HandleReadWriteHistoricalQuery &f, ccf::AbstractNodeContext &node_context, const CheckHistoricalTxStatus &available, const TxIDExtractor &extractor=txid_from_header, const ErrorHandler &ehandler=default_error_handler)
Definition historical_queries_adapter.cpp:582
HistoricalTxStatus
Definition historical_queries_adapter.h:66
HistoricalQueryErrorCode
Definition historical_queries_adapter.h:42
std::function< bool(ccf::View view, ccf::SeqNo seqno, std::string &error_reason)> CheckAvailability
Definition historical_queries_adapter.h:19
HistoricalTxStatus is_tx_committed_v2(ccf::kv::Consensus *consensus, ccf::View view, ccf::SeqNo seqno, std::string &error_reason)
Definition historical_queries_adapter.cpp:384
std::function< std::optional< ccf::TxID >(endpoints::EndpointContext &args)> TxIDExtractor
Definition historical_queries_adapter.h:36
ccf::endpoints::ReadOnlyEndpointFunction read_only_adapter_v4(const HandleReadOnlyHistoricalQuery &f, ccf::AbstractNodeContext &node_context, const CheckHistoricalTxStatus &available, const ReadOnlyTxIDExtractor &extractor=txid_from_header, const ReadOnlyErrorHandler &ehandler=default_error_handler)
Definition historical_queries_adapter.cpp:568
Definition app_interface.h:18
uint64_t View
Definition tx_id.h:23
uint64_t SeqNo
Definition tx_id.h:36
Definition consensus_types.h:23
Definition node_context.h:12
Definition endpoint_context.h:27
Definition endpoint_context.h:58
Definition endpoint_context.h:86