CCF
Loading...
Searching...
No Matches
network_identity_interface.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
6
7#include <optional>
8#include <string>
9#include <vector>
10
11namespace ccf
12{
13 struct NetworkIdentity;
14
15 using RawCoseEndorsement = std::vector<uint8_t>;
16 using CoseEndorsementsChain = std::vector<RawCoseEndorsement>;
17
18 enum class FetchStatus : uint8_t
19 {
20 Retry,
21 Done,
22 Failed
23 };
24
26 {
27 public:
29
30 static char const* get_subsystem_name()
31 {
32 return "NetworkIdentity";
33 }
34
35 virtual const std::unique_ptr<NetworkIdentity>& get() = 0;
36
37 [[nodiscard]] virtual FetchStatus endorsements_fetching_status() const = 0;
38
39 [[nodiscard]] virtual std::optional<CoseEndorsementsChain>
41 };
42}
Definition node_subsystem_interface.h:8
Definition network_identity_interface.h:26
virtual const std::unique_ptr< NetworkIdentity > & get()=0
virtual FetchStatus endorsements_fetching_status() const =0
static char const * get_subsystem_name()
Definition network_identity_interface.h:30
virtual std::optional< CoseEndorsementsChain > get_cose_endorsements_chain(ccf::SeqNo seqno) const =0
~NetworkIdentitySubsystemInterface() override=default
Definition app_interface.h:14
FetchStatus
Definition network_identity_interface.h:19
std::vector< RawCoseEndorsement > CoseEndorsementsChain
Definition network_identity_interface.h:16
seqno
Definition signatures.h:54
uint64_t SeqNo
Definition tx_id.h:36
std::vector< uint8_t > RawCoseEndorsement
Definition network_identity_interface.h:15