Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/avi_play/src/lib/shell/shell_command_class.h @ 6382

Last change on this file since 6382 was 5781, checked in by bensch, 19 years ago

orxonox/trunk: more stl::list

File size: 1.7 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 <list>
11
12
13// FORWARD DECLARATION
14
15////////////////
16// BASE CLASS //
17////////////////
18class ShellCommand;
19class ShellCommandAlias;
20
21//! A class to hold all Classes that have (once) registered Commands.
22class ShellCommandClass : public BaseObject
23{
24  friend class ShellCommand;
25
26  public:
27    /** @returns the CommandClassList */
28    static const std::list<ShellCommandClass*>* getCommandClassList() { return ShellCommandClass::commandClassList; };
29    static bool getCommandListOfClass(const char* className, std::list<const char*>* stringList);
30    static bool getCommandListOfAlias(std::list<const char*>* aliasList);
31
32    static ShellCommandClass* getCommandClass(const char* className);
33    static void unregisterAllCommands();
34
35    static void help (const char* className);
36
37  private:
38    ShellCommandClass(const char* className);
39    ~ShellCommandClass();
40
41    static const ShellCommandClass* isRegistered(const char* className);
42    static void initCommandClassList();
43
44  private:
45    const char*                            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::list<ShellCommand*>               commandList;               //!< A list of Commands from this Class
48    static std::list<ShellCommandClass*>*  commandClassList;          //!< A list of Classes
49    static std::list<ShellCommandAlias*>*  aliasList;                 //!< An Alias to A Command. (only for classes with one Instance)
50};
51
52#endif /* _SHELL_COMMAND_H */
Note: See TracBrowser for help on using the repository browser.