Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 9676 in orxonox.OLD for trunk/src/lib/lang/new_object_list.h


Ignore:
Timestamp:
Aug 21, 2006, 11:09:53 PM (18 years ago)
Author:
bensch
Message:

trunk: Better ID handling, now it is possible, to use pre-defined ID's, as it was with the old appreach

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/lang/new_object_list.h

    r9675 r9676  
    3737  bool operator==(const std::string& name) const { return _name == name; };
    3838
    39 
    40   /// Comparing operators.
    41 //   struct CompareID  {
    42 //     bool operator()(const NewObjectListBase* less, const NewObjectListBase* more) { return less->id() < more->id(); };
    43 //   };
    44 //   struct CompareName{
    45 //     bool operator()(const NewObjectListBase* less, const NewObjectListBase* more) { return less->name() < more->name(); };
    46 //   };
    47 
    4839  virtual void debug() const = 0;
    4940
    50   static unsigned int                   classCount() { return _idCounter; };
     41  static unsigned int                   classCount();
    5142  static const std::string&             IDToString(int classID);
    5243  static int                            StringToID(const std::string& className);
     
    5748
    5849protected:
    59   NewObjectListBase(const std::string& className);
     50  NewObjectListBase(const std::string& className, int id = -1);
    6051  virtual ~NewObjectListBase();
    6152
     
    6354  NewObjectListBase(const NewObjectListBase&);
    6455
     56  static bool classIDExists(int id);
    6557  static bool classNameExists(const std::string& className);
    6658
     
    7365
    7466private:
    75 
    76   static int                    _idCounter;         //!< A counter, that gives all classes a Unique ClassID. Access to this Variable is to be Thread-Safe.
    7767  static classIDMap*            _classesByID;       //!< A Map of all the classes in existance.
    7868  static classNameMap*          _classesByName;     //!< A Map of all the classes in existance.
     
    110100
    111101public:
    112   NewObjectList(const std::string& name);
     102  NewObjectList(const std::string& name, int id = -1);
    113103  ~NewObjectList();
    114104
     
    137127/////////////////////////
    138128template <class T>
    139 NewObjectList<T>::NewObjectList(const std::string& name)
    140     : NewObjectListBase(name)
     129NewObjectList<T>::NewObjectList(const std::string& name, int id)
     130    : NewObjectListBase(name, id)
    141131{}
    142132
Note: See TracChangeset for help on using the changeset viewer.