#ifndef SERVERUTILS_COMMANDS_H #define SERVERUTILS_COMMANDS_H #include #include #include #include #include #include namespace U { class Commands : public M::Vocabulary { struct Command; typedef std::map Map; public: Commands(const W::Address& address, QObject* parent = 0); ~Commands(); void addCommand(const W::String& key, W::Handler* handler, const W::Vocabulary& args); void removeCommand(const W::String& key); void enableCommand(const W::String& key, bool value); private: void enableCommand(Command* cmd); void disableCommand(Command* cmd); Map* commands; struct Command { W::String name; W::Handler* handler; W::Vocabulary arguments; bool enabled; }; }; } #endif // SERVERUTILS_COMMANDS_H