ConfigCmdManager.h 977 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef CONFIG_CMD_MANAGER_H
  2. #define CONFIG_CMD_MANAGER_H
  3. #include <OgreSingleton.h>
  4. #include <vector>
  5. #include <memory>
  6. #include "ConfigCmd.h"
  7. class ConfigCmdManager : public Ogre::Singleton< ConfigCmdManager >
  8. {
  9. public:
  10. ConfigCmdManager();
  11. ~ConfigCmdManager();
  12. void AddCommand( const Ogre::String& name, const Ogre::String& description, const Ogre::String& params_description, ConfigCmdHandler handler, ConfigCmdCompletion completion );
  13. void ExecuteString( const Ogre::String& cmd_string );
  14. // return command with specified name
  15. ConfigCmd* Find( const Ogre::String& name ) const;
  16. int GetConfigCmdNumber();
  17. ConfigCmd* GetConfigCmd( unsigned int i ) const;
  18. private:
  19. // forbid copy
  20. ConfigCmdManager( const ConfigCmdManager& rhs ) = delete;
  21. ConfigCmdManager operator =( const ConfigCmdManager& rhs ) = delete;
  22. void InitCmd();
  23. std::vector< std::unique_ptr<ConfigCmd> > m_Commands;
  24. };
  25. #endif // CONFIG_CMD_MANAGER_H