Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/shell/shell_command_class.h @ 7394

Last change on this file since 7394 was 7394, checked in by bensch, 18 years ago

orxonox/trunk: list to vector

File size: 1.6 KB
Line 
1/*!
2 * @file shell_command_class.h
3 * Definition of a on-screen-shell
4 */
5
6#ifndef _SHELL_COMMAND_CLASS_H
7#define _SHELL_COMMAND_CLASS_H
8
9#include "base_object.h"
10#include <vector>
11
12
13namespace OrxShell
14{
15  // FORWARD DECLARATION
16  class ShellCommand;
17  class ShellCommandAlias;
18
19  //! A class to hold all Classes that have (once) registered Commands.
20  class ShellCommandClass : public BaseObject
21  {
22    friend class ShellCommand;
23
24  public:
25    /** @returns the CommandClassList */
26    static const std::vector<ShellCommandClass*>& getCommandClassList() { return ShellCommandClass::commandClassList; };
27
28    static bool getCommandListOfClass(const std::string& className, std::list<std::string>& stringList);
29
30    static ShellCommandClass* getCommandClass(const std::string& className);
31    static void unregisterAllCommands();
32
33    static void help (const std::string& className);
34
35  private:
36    ShellCommandClass(const std::string& className);
37    virtual ~ShellCommandClass();
38
39    static const ShellCommandClass* isRegistered(const std::string& className);
40
41    void registerCommand(ShellCommand* command);
42    void unregisterCommand(ShellCommand* command);
43
44  private:
45    const std::string                      className;                 //!< The Name of the Class. This should match the ClassName of the Commands Class.
46    long                                   classID;                   //!< The classID of this Class
47    std::vector<ShellCommand*>             commandList;               //!< A list of Commands from this Class
48
49    static std::vector<ShellCommandClass*> commandClassList;          //!< A list of Classes
50  };
51
52}
53
54#endif /* _SHELL_COMMAND_H */
Note: See TracBrowser for help on using the repository browser.