11#define FMT_HEADER_ONLY
12#include <fmt/format.h>
30 const std::string& peer_hostname,
31 const std::string& peer_service) = 0;
41 to, type,
reinterpret_cast<const uint8_t*
>(&data),
sizeof(T));
56 const NodeId& from,
const uint8_t*& data,
size_t& size)
58 std::span<const uint8_t> ts(data,
sizeof(T));
59 auto& t = serialized::overlay<T>(data, size);
71 const NodeId& from,
const uint8_t*& data,
size_t& size)
73 const auto* data_ = data;
76 const auto& t = serialized::overlay<T>(data_, size_);
88 const NodeId& from,
const uint8_t*& data,
size_t& size) = 0;
92 std::span<const uint8_t> header,
97 const NodeId& from,
const uint8_t* data,
size_t size) = 0;
103 const std::optional<ccf::crypto::Pem>& node_cert = std::nullopt) = 0;
111 std::span<const uint8_t> header,
112 const std::vector<uint8_t>& data) = 0;
118 const std::vector<uint8_t>& data,
121 std::span<const uint8_t> hdr_s{
122 reinterpret_cast<const uint8_t*
>(&msg_hdr),
sizeof(T)};
128 const NodeId& from,
const uint8_t*& data,
size_t& size)
130 std::span<const uint8_t> ts(data,
sizeof(T));
131 auto t = serialized::read<T>(data, size);
133 std::vector<uint8_t> plain =
recv_encrypted(from, ts, data, size);
134 return std::make_pair(t, plain);
139 std::span<const uint8_t> header,
146 virtual void tick(std::chrono::milliseconds elapsed) = 0;
Definition node_to_node.h:22
DroppedMessageException(const NodeId &from)
Definition node_to_node.h:25
NodeId from
Definition node_to_node.h:24
Definition node_to_node.h:17
virtual bool recv_authenticated(const NodeId &from, std::span< const uint8_t > header, const uint8_t *&data, size_t &size)=0
bool send_encrypted(const NodeId &to, NodeMsgType type, const std::vector< uint8_t > &data, const T &msg_hdr)
Definition node_to_node.h:115
virtual void set_idle_timeout(std::chrono::milliseconds idle_timeout)=0
bool send_authenticated(const NodeId &to, NodeMsgType type, const T &data)
Definition node_to_node.h:38
virtual void initialize(const NodeId &self_id, const ccf::crypto::Pem &service_cert, ccf::crypto::KeyPairPtr node_kp, const std::optional< ccf::crypto::Pem > &node_cert=std::nullopt)=0
virtual void tick(std::chrono::milliseconds elapsed)=0
const T & recv_authenticated_with_load(const NodeId &from, const uint8_t *&data, size_t &size)
Definition node_to_node.h:70
virtual bool have_channel(const NodeId &nid)=0
virtual bool recv_channel_message(const NodeId &from, const uint8_t *data, size_t size)=0
std::pair< T, std::vector< uint8_t > > recv_encrypted(const NodeId &from, const uint8_t *&data, size_t &size)
Definition node_to_node.h:127
virtual void close_channel(const NodeId &peer_id)=0
virtual std::vector< uint8_t > recv_encrypted(const NodeId &from, std::span< const uint8_t > header, const uint8_t *data, size_t size)=0
virtual void set_message_limit(size_t message_limit)=0
const T & recv_authenticated(const NodeId &from, const uint8_t *&data, size_t &size)
Definition node_to_node.h:55
bool send_authenticated(const NodeId &to, NodeMsgType type, const std::vector< uint8_t > &data)
Definition node_to_node.h:45
virtual bool recv_authenticated_with_load(const NodeId &from, const uint8_t *&data, size_t &size)=0
virtual ~NodeToNode()=default
virtual void set_endorsed_node_cert(const ccf::crypto::Pem &endorsed_node_cert)=0
virtual void associate_node_address(const NodeId &peer_id, const std::string &peer_hostname, const std::string &peer_service)=0
virtual bool send_encrypted(const NodeId &to, NodeMsgType type, std::span< const uint8_t > header, const std::vector< uint8_t > &data)=0
virtual bool send_authenticated(const NodeId &to, NodeMsgType type, const uint8_t *data, size_t size)=0
std::shared_ptr< KeyPair > KeyPairPtr
Definition key_pair.h:145
Definition app_interface.h:14
NodeMsgType
Definition node_types.h:19
void skip(const uint8_t *&data, size_t &size, size_t skip)
Definition serialized.h:166
char const * data() const
Definition entity_id.h:70