Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 5113 in orxonox.OLD for trunk/src/lib/lang


Ignore:
Timestamp:
Aug 23, 2005, 11:18:39 PM (19 years ago)
Author:
bensch
Message:

orxonox/trunk:restoring the trunk…

Location:
trunk/src/lib/lang
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/lang/base_object.cc

    r5111 r5113  
    5252  //  delete []this->className;
    5353  if (this->objectName)
    54     delete []this->objectName;}
     54    delete[] this->objectName;}
    5555
    5656/**
     
    8484{
    8585  if (this->objectName)
    86     delete []this->objectName;
     86    delete[] this->objectName;
    8787  if (objectName)
    8888  {
  • trunk/src/lib/lang/base_object.h

    r5111 r5113  
    2727
    2828  void setName (const char* newName);
    29   /** \brief returns the Name of this Object */
     29  /** returns the Name of this Object */
    3030  inline const char* getName ()const { return this->objectName; };
    3131
  • trunk/src/lib/lang/class_list.cc

    r5111 r5113  
    4848{
    4949  delete this->objectList;
     50  if(ClassList::classList != NULL)
     51  {
     52    delete ClassList::classList;
     53    ClassList::classList = NULL;
     54  }
    5055  --ClassList::classCount;
    5156}
     
    5661//! the Count of classes
    5762unsigned int ClassList::classCount = 0;
     63
     64//! a List of all strings of all classes, that have registered so far.
     65tList<const char>* ClassList::classList = NULL;
    5866
    5967/**
     
    109117}
    110118
     119/**
     120 * grabs the names of all Classes, and injects it into a List of const chars
     121 * @return the generated List
     122 *
     123 * This function first looks, if the List has been changed (by the ListSize)
     124 * befor it changes anything.
     125 */
     126const tList<const char>* ClassList::getClassList()
     127{
     128  if (unlikely(ClassList::classList != NULL && ClassList::classList->getSize() != ClassList::classCount))
     129  {
     130    delete ClassList::classList;
     131    ClassList::classList = NULL;
     132  }
     133  if (unlikely(ClassList::classList == NULL))
     134    ClassList::classList = new tList<const char>;
     135
     136  if(likely(ClassList::first != NULL))
     137  {
     138    ClassList* tmpCL = ClassList::first;
     139    while (likely(tmpCL != NULL))
     140    {
     141      ClassList::classList->add(tmpCL->className);
     142      tmpCL = tmpCL->next;
     143    }
     144  }
     145  return ClassList::classList;
     146}
     147
     148/**
     149 * searches for classID and returns the list of Entities
     150 * @param classID the ID of the class to get the list from
     151 * @return the List accessed by classID, or NULL if not found
     152 */
    111153tList<BaseObject>* ClassList::getList(long classID)
    112154{
     
    119161    {
    120162      if (unlikely(tmpCL->classID == classID))
     163        return tmpCL->objectList;
     164      tmpCL = tmpCL->next;
     165    }
     166  }
     167  return NULL;
     168}
     169
     170/**
     171 * searches for className and returns the list of Entities
     172 * @param className the name of the class to get the list from
     173 * @return the List accessed by classID, or NULL if not found
     174 */tList<BaseObject>* ClassList::getList(const char* className)
     175{
     176  if(unlikely(ClassList::first == NULL))
     177    return NULL;
     178  else
     179  {
     180    ClassList* tmpCL = ClassList::first;
     181    while (likely(tmpCL != NULL))
     182    {
     183      if (unlikely(!strcmp(tmpCL->className, className)))
    121184        return tmpCL->objectList;
    122185      tmpCL = tmpCL->next;
     
    205268}
    206269
    207 
    208270/**
    209271 * prints out a string of all the types this Object matches
     
    222284  }
    223285}
     286
     287/**
     288 * converts a ClassID into a string
     289 * @param classID the ClassID to search for
     290 * @return a String containing the name of the Class, NULL if the Class was not found
     291 */
     292const char* ClassList::IDToString(ClassID classID)
     293{
     294  if(likely(ClassList::first != NULL))
     295  {
     296    ClassList* tmpCL = ClassList::first;
     297    while (likely(tmpCL != NULL))
     298    {
     299      if (tmpCL->classID == classID)
     300        return tmpCL->className;
     301      tmpCL = tmpCL->next;
     302    }
     303  }
     304  return NULL;
     305}
     306
     307/**
     308 * converts a String into a ClassID
     309 * @param className the name of the class to search for
     310 * @return the ClassID. CL_NULL, if the class was not found.
     311 */
     312long ClassList::StringToID(const char* className)
     313{
     314  if(likely(ClassList::first != NULL))
     315  {
     316    ClassList* tmpCL = ClassList::first;
     317    while (likely(tmpCL != NULL))
     318    {
     319      if (!strcasecmp(tmpCL->className, className))
     320        return tmpCL->classID;
     321      tmpCL = tmpCL->next;
     322    }
     323  }
     324  return CL_NULL;
     325}
     326
     327
    224328
    225329/**
  • trunk/src/lib/lang/class_list.h

    r5111 r5113  
    3535
    3636    // STATIC FUNCTIONS
    37     static void               addToClassList(BaseObject* objectPointer, const long& classID, const char* className);
    38     static void               removeFromClassList(BaseObject* objectPointer);
     37    static void                     addToClassList(BaseObject* objectPointer, const long& classID, const char* className);
     38    static void                     removeFromClassList(BaseObject* objectPointer);
    3939
    40     static tList<BaseObject>* getList(long classID = CL_NULL);
    41     static BaseObject*        getObject(const char* name, long classID = CL_NULL);
    42     static bool               exists(const BaseObject* object, long classID = CL_NULL);
     40    static tList<BaseObject>*       getList(long classID = CL_NULL);
     41    static tList<BaseObject>*       getList(const char* className);
     42    static const tList<const char>* getClassList();
     43    static BaseObject*              getObject(const char* name, long classID = CL_NULL);
     44    static bool                     exists(const BaseObject* object, long classID = CL_NULL);
    4345
    44     static void               whatIs(const BaseObject* object);
    45     static void debug(unsigned int debugLevel = 0, long classID = CL_NULL);
     46    static void                     whatIs(const BaseObject* object);
     47
     48    static const char*              IDToString(ClassID classID = CL_NULL);
     49    static long                     StringToID(const char* className);
     50    static void                     debug(unsigned int debugLevel = 0, long classID = CL_NULL);
     51
    4652
    4753  private:
    48     tList<BaseObject>*       objectList;             //!< A list of Objects belonging to this Class
     54    tList<BaseObject>*              objectList;             //!< A list of Objects belonging to this Class
    4955
    50     long                     classID;                //!< ClassID stored in this ClassList \see ClassID
    51     const char*              className;              //!< Name of the Class Stored here
     56    long                            classID;                //!< ClassID stored in this ClassList \see ClassID
     57    const char*                     className;              //!< Name of the Class Stored here
    5258
    53     ClassList*               next;                   //!< Pointer to the next class in the List
     59    ClassList*                      next;                   //!< Pointer to the next class in the List
    5460
    5561    // STATIC MEMBERS
    56     static ClassList*        first;                  //!< The first Class in the List
    57     static unsigned int      classCount;             //!< The Count of classes that have been registered (should match the lower description)
     62    static ClassList*               first;                  //!< The first Class in the List
     63    static tList<const char>*       classList;              //!< a List of all Names of all classes, that have registered so far.
     64    static unsigned int             classCount;             //!< The Count of classes that have been registered (should match the lower description)
    5865};
    5966
Note: See TracChangeset for help on using the changeset viewer.