#pragma once namespace DIOS::Dev::Detail::MachineryECOM { const std::string GENERAL_DISPATCHER = "General_Dispatcher"; class IPacketDispatcher; class PacketDispatcherFactory { public: PacketDispatcherFactory(); ~PacketDispatcherFactory(); public: static PacketDispatcherFactory *Instance(); IPacketDispatcher *CreateSingleton(const std::string &typeName); private: static PacketDispatcherFactory *m_instance; std::map m_dispatchers; }; }