29 const std::string& protocol_name,
35 virtual void uninstall(
const std::string& protocol_name)
override
41 const std::string& protocol_name,
43 const std::unique_ptr<tls::Context>&& ctx)
override
48 return it->second(conn_id, std::move(ctx));
52 throw std::logic_error(fmt::format(
53 "Session creation function for protocol '{}' has not been installed",
60 std::shared_ptr<Essentials> r = std::make_shared<Essentials>();
63 r->tx = std::make_shared<ccf::kv::ReadOnlyTx>(store.get());
64 r->ctx = std::make_shared<ccf::endpoints::ReadOnlyEndpointContext>(
Definition node_interface.h:23
virtual ringbuffer::AbstractWriterFactory & get_writer_factory()=0
virtual std::shared_ptr< ccf::kv::Store > get_store()=0
Definition custom_protocol_subsystem_interface.h:24
std::function< std::shared_ptr< Session >(ccf::tls::ConnID, const std::unique_ptr< tls::Context > &&)> CreateSessionFn
Definition custom_protocol_subsystem_interface.h:27
Definition custom_protocol_subsystem.h:18
virtual std::shared_ptr< Session > create_session(const std::string &protocol_name, ccf::tls::ConnID conn_id, const std::unique_ptr< tls::Context > &&ctx) override
Definition custom_protocol_subsystem.h:40
std::map< std::string, CreateSessionFn > session_creation_functions
Definition custom_protocol_subsystem.h:21
CustomProtocolSubsystem(AbstractNodeState &node_state_)
Definition custom_protocol_subsystem.h:24
AbstractNodeState & node_state
Definition custom_protocol_subsystem.h:20
virtual std::shared_ptr< Essentials > get_essentials() override
Definition custom_protocol_subsystem.h:58
virtual void install(const std::string &protocol_name, CreateSessionFn create_session_f) override
Definition custom_protocol_subsystem.h:28
virtual void uninstall(const std::string &protocol_name) override
Definition custom_protocol_subsystem.h:35
virtual WriterPtr create_writer_to_outside()=0
int64_t ConnID
Definition custom_protocol_subsystem_interface.h:20
Definition app_interface.h:14