4 #include <unordered_map>
32 template <
typename PacketHandlerType>
42 template <
typename PacketHandlerType,
typename... Args>
47 std::unordered_map<SubprotocolPacketType, std::shared_ptr<PacketHandler>>
packets_handlers_;
50 template <
typename PacketHandlerType>
52 return std::static_pointer_cast<PacketHandlerType>(
getSpecificHandler(PacketHandlerType::kPacketType_));
55 template <
typename PacketHandlerType,
typename... Args>
59 std::make_shared<PacketHandlerType>(std::forward<Args>(args)...));
Generic PacketsHandler that contains all specific packet handlers.
Definition: packets_handler.hpp:13
std::shared_ptr< PacketHandlerType > getSpecificHandler()
templated getSpecificHandler method for getting specific packet handler based on PacketHandlerType::k...
Definition: packets_handler.hpp:51
void registerHandler(Args &&... args)
Registers packet handler.
Definition: packets_handler.hpp:56
std::unordered_map< SubprotocolPacketType, std::shared_ptr< PacketHandler > > packets_handlers_
Definition: packets_handler.hpp:47
Definition: vote_manager.hpp:23
SubprotocolPacketType
SubprotocolPacketType is used in networking layer to differentiate packet types.
Definition: packet_types.hpp:12