28 #ifndef VESC_DRIVER_VESC_PACKET_FACTORY_H_ 29 #define VESC_DRIVER_VESC_PACKET_FACTORY_H_ 73 const Buffer::const_iterator& end,
74 int* num_bytes_needed, std::string* what);
76 typedef std::function<VescPacketPtr(std::shared_ptr<VescFrame>)>
CreateFn;
90 static FactoryMap*
getMap();
93 template<
typename PACKETTYPE>
109 #define REGISTER_PACKET_TYPE(id, klass) \ 110 static PacketFactoryTemplate<klass> global_##klass##Factory((id)); 114 #endif // VESC_DRIVER_VESC_PACKET_FACTORY_H_ static VescPacketPtr create(std::shared_ptr< VescFrame > frame)
VescPacketFactory & operator=(const VescPacketFactory &)=delete
PacketFactoryTemplate(int payload_id)
static VescPacketPtr createPacket(const Buffer::const_iterator &begin, const Buffer::const_iterator &end, int *num_bytes_needed, std::string *what)
std::map< int, CreateFn > FactoryMap
std::shared_ptr< VescPacket > VescPacketPtr
static void registerPacketType(int payload_id, CreateFn fn)
std::function< VescPacketPtr(std::shared_ptr< VescFrame >)> CreateFn
static VescPacketFactory * getFactory()
static FactoryMap * getMap()