#pragma once class Command; class CommandSender; class CommandDispatcher { private: unordered_map commandsById; unordered_set commands; public: void performCommand(shared_ptr sender, EGameCommand command, byteArray commandData); Command *addCommand(Command *command); };