Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/new_class_id/src/lib/util/loading/load_param_description.h @ 9727

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

orxonox/new_class_id: new Executor construct, that is much more typesafe, faster, and easier to extend…

Also changed the LoadParam process, and adapted ScriptEngine calls

Then at the end, some missing headers appeared, and appended them to all the cc-files again.

File size: 2.7 KB
Line 
1/*
2   orxonox - the future of 3D-vertical-scrollers
3
4   Copyright (C) 2004 orx
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11   ### File Specific:
12   main-programmer: Benjamin Grauer
13   co-programmer: ...
14*/
15
16/*!
17 * @file load_param.h
18 * A Class and macro-functions, that makes our lives easy to load-in parameters
19 */
20
21#ifndef _LOAD_PARAM_DESCRIPTION_H
22#define _LOAD_PARAM_DESCRIPTION_H
23
24#include "base_object.h"
25#include <list>
26
27// Forward Declaration //
28class MultiType;
29
30/************************
31*** DESCRIPTION STUFF ***
32************************/
33//! A class that handles the description of loadable parameters
34class LoadParamDescription
35{
36  friend class LoadParam;
37  friend class LoadClassDescription;
38public:
39  LoadParamDescription(const std::string& paramName);
40  ~LoadParamDescription();
41
42  void setDescription(const std::string& descriptionText);
43  /** @returns the descriptionString */
44  const std::string& getDescription() { return this->description; };
45
46  void print() const;
47
48private:
49  std::string   paramName;             //!< The name of the parameter.
50  int           paramCount;            //!< The count of parameters.
51  int*          types;                 //!< What kind of parameters does this function take ??
52  std::string   description;           //!< A longer description about this function.
53  char**        defaultValues;         //!< The 'Default Values'. @TODO MAKE THIS A MULTITYPE
54};
55
56//! A class for descriptions of a loadable module
57class LoadClassDescription
58{
59  friend class LoadParamBase;
60public:
61  LoadClassDescription(const std::string& className);
62  ~LoadClassDescription();
63
64  static LoadClassDescription* addClass(const std::string& className);
65  LoadParamDescription* addParam(const std::string& paramName);
66
67  static void deleteAllDescriptions();
68
69  static void printAll(const std::string& fileName = "");
70  static std::list<std::string> searchClassWithShort(const std::string& classNameBegin);
71  //  static const LoadParamDescription* getClass(const std::string& className);
72
73private:
74  static bool                              parametersDescription;  //!< if parameter-description should be enabled.
75  static std::list<LoadClassDescription*>* classList;              //!< a list, that stores all the loadable classes. (after one instance has been loaded)
76  std::string                              className;              //!< name of the class
77
78  std::list<LoadParamDescription*>         paramList;              //!< List of parameters this class knows.
79};
80
81#endif /* _LOAD_PARAM_DESCRIPTION_H */
Note: See TracBrowser for help on using the repository browser.