Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 239


Ignore:
Timestamp:
Nov 25, 2007, 2:59:58 AM (16 years ago)
Author:
landauf
Message:

added some "const" qualifiers to the identifier-functions

Location:
code/branches/objecthierarchie/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • code/branches/objecthierarchie/src/BaseObject.h

    r221 r239  
    1212            virtual ~BaseObject();
    1313
    14             inline bool isA(Identifier* identifier)
     14            inline bool isA(const Identifier* identifier)
    1515                { this->getIdentifier()->isA(identifier); }
    16             inline bool isDirectlyA(Identifier* identifier)
     16            inline bool isDirectlyA(const Identifier* identifier)
    1717                { this->getIdentifier()->isDirectlyA(identifier); }
    18             inline bool isChildOf(Identifier* identifier)
     18            inline bool isChildOf(const Identifier* identifier)
    1919                { this->getIdentifier()->isChildOf(identifier); }
    20             inline bool isDirectChildOf(Identifier* identifier)
     20            inline bool isDirectChildOf(const Identifier* identifier)
    2121                { this->getIdentifier()->isDirectChildOf(identifier); }
    22             inline bool isParentOf(Identifier* identifier)
     22            inline bool isParentOf(const Identifier* identifier)
    2323                { this->getIdentifier()->isParentOf(identifier); }
    24             inline bool isDirectParentOf(Identifier* identifier)
     24            inline bool isDirectParentOf(const Identifier* identifier)
    2525                { this->getIdentifier()->isDirectParentOf(identifier); }
    2626
    27             inline bool isA(BaseIdentifier<class B>* identifier)
     27            inline bool isA(const BaseIdentifier<class B>* identifier)
    2828                { this->getIdentifier()->isA(identifier->getIdentifier()); }
    29             inline bool isDirectlyA(BaseIdentifier<class B>* identifier)
     29            inline bool isDirectlyA(const BaseIdentifier<class B>* identifier)
    3030                { this->getIdentifier()->isDirectlyA(identifier->getIdentifier()); }
    31             inline bool isChildOf(BaseIdentifier<class B>* identifier)
     31            inline bool isChildOf(const BaseIdentifier<class B>* identifier)
    3232                { this->getIdentifier()->isChildOf(identifier->getIdentifier()); }
    33             inline bool isDirectChildOf(BaseIdentifier<class B>* identifier)
     33            inline bool isDirectChildOf(const BaseIdentifier<class B>* identifier)
    3434                { this->getIdentifier()->isDirectChildOf(identifier->getIdentifier()); }
    35             inline bool isParentOf(BaseIdentifier<class B>* identifier)
     35            inline bool isParentOf(const BaseIdentifier<class B>* identifier)
    3636                { this->getIdentifier()->isParentOf(identifier->getIdentifier()); }
    37             inline bool isDirectParentOf(BaseIdentifier<class B>* identifier)
     37            inline bool isDirectParentOf(const BaseIdentifier<class B>* identifier)
    3838                { this->getIdentifier()->isDirectParentOf(identifier->getIdentifier()); }
    3939
    40             inline bool isA(BaseIdentifier<class B> identifier)
     40            inline bool isA(const BaseIdentifier<class B> identifier)
    4141                { this->getIdentifier()->isA(identifier.getIdentifier()); }
    42             inline bool isDirectlyA(BaseIdentifier<class B> identifier)
     42            inline bool isDirectlyA(const BaseIdentifier<class B> identifier)
    4343                { this->getIdentifier()->isDirectlyA(identifier.getIdentifier()); }
    44             inline bool isChildOf(BaseIdentifier<class B> identifier)
     44            inline bool isChildOf(const BaseIdentifier<class B> identifier)
    4545                { this->getIdentifier()->isChildOf(identifier.getIdentifier()); }
    46             inline bool isDirectChildOf(BaseIdentifier<class B> identifier)
     46            inline bool isDirectChildOf(const BaseIdentifier<class B> identifier)
    4747                { this->getIdentifier()->isDirectChildOf(identifier.getIdentifier()); }
    48             inline bool isParentOf(BaseIdentifier<class B> identifier)
     48            inline bool isParentOf(const BaseIdentifier<class B> identifier)
    4949                { this->getIdentifier()->isParentOf(identifier.getIdentifier()); }
    50             inline bool isDirectParentOf(BaseIdentifier<class B> identifier)
     50            inline bool isDirectParentOf(const BaseIdentifier<class B> identifier)
    5151                { this->getIdentifier()->isDirectParentOf(identifier.getIdentifier()); }
    5252
    53             inline bool isA(OrxonoxClass* object)
     53            inline bool isA(const OrxonoxClass* object)
    5454                { this->getIdentifier()->isA(object->getIdentifier()); }
    55             inline bool isDirectlyA(OrxonoxClass* object)
     55            inline bool isDirectlyA(const OrxonoxClass* object)
    5656                { this->getIdentifier()->isDirectlyA(object->getIdentifier()); }
    57             inline bool isChildOf(OrxonoxClass* object)
     57            inline bool isChildOf(const OrxonoxClass* object)
    5858                { this->getIdentifier()->isChildOf(object->getIdentifier()); }
    59             inline bool isDirectChildOf(OrxonoxClass* object)
     59            inline bool isDirectChildOf(const OrxonoxClass* object)
    6060                { this->getIdentifier()->isDirectChildOf(object->getIdentifier()); }
    61             inline bool isParentOf(OrxonoxClass* object)
     61            inline bool isParentOf(const OrxonoxClass* object)
    6262                { this->getIdentifier()->isParentOf(object->getIdentifier()); }
    63             inline bool isDirectParentOf(OrxonoxClass* object)
     63            inline bool isDirectParentOf(const OrxonoxClass* object)
    6464                { this->getIdentifier()->isDirectParentOf(object->getIdentifier()); }
    6565
  • code/branches/objecthierarchie/src/Identifier.cc

    r231 r239  
    1111    {
    1212        this->bCreatedOneObject_ = false;
     13
     14        this->directChildren_ = new IdentifierList;
     15        this->allChildren_ = new IdentifierList;
     16        this->directParents_ = new IdentifierList;
     17        this->allParents_ = new IdentifierList;
    1318    }
    1419
     
    1621    {
    1722        delete &this->name_;
     23
     24        delete this->directChildren_;
     25        delete this->allChildren_;
     26        delete this->directParents_;
     27        delete this->allParents_;
    1828    }
    1929
    20     void Identifier::initialize(IdentifierList* parents)
     30    void Identifier::initialize(const IdentifierList* parents)
    2131    {
    2232#if HIERARCHY_VERBOSE
     
    3444            while (temp1)
    3545            {
    36                 temp2 = temp1->identifier_->directParents_.first_;
     46                temp2 = temp1->identifier_->directParents_->first_;
    3747                while (temp2)
    3848                {
     
    5666                if (temp1->bDirect_)
    5767                {
    58                     this->directParents_.add(temp1->identifier_);
    59                     temp1->identifier_->directChildren_.add(this);
     68                    this->directParents_->add(temp1->identifier_);
     69                    temp1->identifier_->directChildren_->add(this);
    6070                }
    6171
    62                 this->allParents_.add(temp1->identifier_);
    63                 temp1->identifier_->allChildren_.add(this);
     72                this->allParents_->add(temp1->identifier_);
     73                temp1->identifier_->allChildren_->add(this);
    6474
    6575                temp1 = temp1->next_;
     
    6878    }
    6979
    70     bool Identifier::isA(Identifier* identifier)
     80    bool Identifier::isA(const Identifier* identifier) const
    7181    {
    72         return (identifier == this || this->allParents_.isInList(identifier));
     82        return (identifier == this || this->allParents_->isInList(identifier));
    7383    }
    7484
    75     bool Identifier::isDirectlyA(Identifier* identifier)
     85    bool Identifier::isDirectlyA(const Identifier* identifier) const
    7686    {
    7787        return (identifier == this);
    7888    }
    7989
    80     bool Identifier::isChildOf(Identifier* identifier)
     90    bool Identifier::isChildOf(const Identifier* identifier) const
    8191    {
    82         return this->allParents_.isInList(identifier);
     92        return this->allParents_->isInList(identifier);
    8393    }
    8494
    85     bool Identifier::isDirectChildOf(Identifier* identifier)
     95    bool Identifier::isDirectChildOf(const Identifier* identifier) const
    8696    {
    87         return this->directParents_.isInList(identifier);
     97        return this->directParents_->isInList(identifier);
    8898    }
    8999
    90     bool Identifier::isParentOf(Identifier* identifier)
     100    bool Identifier::isParentOf(const Identifier* identifier) const
    91101    {
    92         return this->allChildren_.isInList(identifier);
     102        return this->allChildren_->isInList(identifier);
    93103    }
    94104
    95     bool Identifier::isDirectParentOf(Identifier* identifier)
     105    bool Identifier::isDirectParentOf(const Identifier* identifier) const
    96106    {
    97         return this->directChildren_.isInList(identifier);
     107        return this->directChildren_->isInList(identifier);
    98108    }
    99109}
  • code/branches/objecthierarchie/src/Identifier.h

    r231 r239  
    2727
    2828        public:
    29             virtual void removeObject(OrxonoxClass* object) {};
    30 
    31             virtual BaseObject* fabricate() {};
    32 
    33             bool isA(Identifier* identifier);
    34             bool isDirectlyA(Identifier* identifier);
    35             bool isChildOf(Identifier* identifier);
    36             bool isDirectChildOf(Identifier* identifier);
    37             bool isParentOf(Identifier* identifier);
    38             bool isDirectParentOf(Identifier* identifier);
    39 
    40             std::string getName() { return this->name_; }
    41             IdentifierList* getDirectParents() { return &(this->directParents_); }
    42             IdentifierList* getAllParents() { return &(this->allParents_); }
    43             IdentifierList* getDirectChildren() { return &(this->directChildren_); }
    44             IdentifierList* getAllChildren() { return &(this->allChildren_); }
     29            virtual void removeObject(OrxonoxClass* object) const = 0;
     30
     31            virtual BaseObject* fabricate() const = 0;
     32
     33            bool isA(const Identifier* identifier) const;
     34            bool isDirectlyA(const Identifier* identifier) const;
     35            bool isChildOf(const Identifier* identifier) const;
     36            bool isDirectChildOf(const Identifier* identifier) const;
     37            bool isParentOf(const Identifier* identifier) const;
     38            bool isDirectParentOf(const Identifier* identifier) const;
     39
     40            const std::string& getName() const { return this->name_; }
     41            const IdentifierList* getDirectParents() const { return this->directParents_; }
     42            const IdentifierList* getAllParents() const { return this->allParents_; }
     43            const IdentifierList* getDirectChildren() const { return this->directChildren_; }
     44            const IdentifierList* getAllChildren() const { return this->allChildren_; }
    4545
    4646            static bool isCreatingHierarchy() { return (hierarchyCreatingCounter_s > 0); }
     
    5050            Identifier(const Identifier& identifier) {}
    5151            virtual ~Identifier();
    52             void initialize(IdentifierList* parents);
     52            void initialize(const IdentifierList* parents);
    5353
    5454            static void startCreatingHierarchy()
     
    6868            }
    6969
    70             IdentifierList directParents_;
    71             IdentifierList allParents_;
    72             IdentifierList directChildren_;
    73             IdentifierList allChildren_;
     70            IdentifierList* directParents_;
     71            IdentifierList* allParents_;
     72            IdentifierList* directChildren_;
     73            IdentifierList* allChildren_;
    7474
    7575            std::string name_;
     
    9292
    9393        public:
    94             static ClassIdentifier<T>* registerClass(IdentifierList* parents, std::string name, bool bRootClass, bool bIsAbstractClass);
     94            static ClassIdentifier<T>* registerClass(const IdentifierList* parents, const std::string& name, bool bRootClass, bool bIsAbstractClass);
    9595            static ClassIdentifier<T>* getIdentifier();
    96             BaseObject* fabricate();
    97             T* fabricateClass();
     96            BaseObject* fabricate() const;
     97            T* fabricateClass() const;
    9898            static void addObject(T* object);
    99             void removeObject(OrxonoxClass* object);
     99            void removeObject(OrxonoxClass* object) const;
    100100
    101101        private:
     
    105105
    106106            static ClassIdentifier<T>* pointer_s;
    107             ObjectList<T> objects_s;
     107            ObjectList<T>* objects_;
    108108    };
    109109
     
    114114    ClassIdentifier<T>::ClassIdentifier()
    115115    {
     116        this->objects_ = new ObjectList<T>;
    116117    }
    117118
     
    119120    ClassIdentifier<T>::~ClassIdentifier()
    120121    {
     122        delete this->objects_;
    121123        this->pointer_s = NULL;
    122124    }
    123125
    124126    template <class T>
    125     BaseObject* ClassIdentifier<T>::fabricate()
     127    BaseObject* ClassIdentifier<T>::fabricate() const
    126128    {
    127129        return dynamic_cast<BaseObject*>(this->fabricateClass());
     
    129131
    130132    template <class T>
    131     T* ClassIdentifier<T>::fabricateClass()
     133    T* ClassIdentifier<T>::fabricateClass() const
    132134    {
    133135        if (!this->bIsAbstractClass_)
     
    144146
    145147    template <class T>
    146     ClassIdentifier<T>* ClassIdentifier<T>::registerClass(IdentifierList* parents, std::string name, bool bRootClass, bool bIsAbstractClass)
     148    ClassIdentifier<T>* ClassIdentifier<T>::registerClass(const IdentifierList* parents, const std::string& name, bool bRootClass, bool bIsAbstractClass)
    147149    {
    148150#if HIERARCHY_VERBOSE
     
    202204        std::cout << "*** Added object to " << ClassIdentifier<T>::getIdentifier()->getName() << "-list.\n";
    203205#endif
    204         ClassIdentifier<T>::getIdentifier()->objects_s.add(object);
    205     }
    206 
    207     template <class T>
    208     void ClassIdentifier<T>::removeObject(OrxonoxClass* object)
     206        ClassIdentifier<T>::getIdentifier()->objects_->add(object);
     207    }
     208
     209    template <class T>
     210    void ClassIdentifier<T>::removeObject(OrxonoxClass* object) const
    209211    {
    210212        bool bIterateForwards = !Identifier::isCreatingHierarchy();
     
    217219#endif
    218220
    219         this->objects_s.remove(object, bIterateForwards);
    220 
    221         IdentifierListElement* temp = this->directParents_.first_;
     221        this->objects_->remove(object, bIterateForwards);
     222
     223        IdentifierListElement* temp = this->directParents_->first_;
    222224        while (temp)
    223225        {
     
    285287            }
    286288
    287             inline Identifier* getIdentifier()
     289            inline const Identifier* getIdentifier() const
    288290                { return this->identifier_; }
    289             inline bool isA(Identifier* identifier)
     291            inline bool isA(const Identifier* identifier) const
    290292                { return this->identifier_->isA(identifier); }
    291             inline bool isDirectlyA(Identifier* identifier)
     293            inline bool isDirectlyA(const Identifier* identifier) const
    292294                { return this->identifier_->isDirectlyA(identifier); }
    293             inline bool isChildOf(Identifier* identifier)
     295            inline bool isChildOf(const Identifier* identifier) const
    294296                { return this->identifier_->isChildOf(identifier); }
    295             inline bool isDirectChildOf(Identifier* identifier)
     297            inline bool isDirectChildOf(const Identifier* identifier) const
    296298                { return this->identifier_->isDirectChildOf(identifier); }
    297             inline bool isParentOf(Identifier* identifier)
     299            inline bool isParentOf(const Identifier* identifier) const
    298300                { return this->identifier_->isParentOf(identifier); }
    299             inline bool isDirectParentOf(Identifier* identifier)
     301            inline bool isDirectParentOf(const Identifier* identifier) const
    300302                { return this->identifier_->isDirectParentOf(identifier); }
    301303
  • code/branches/objecthierarchie/src/IdentifierList.cc

    r197 r239  
    2323    }
    2424
    25     void IdentifierList::add(Identifier* identifier)
     25    void IdentifierList::add(const Identifier* identifier)
    2626    {
    2727        IdentifierListElement* temp = this->first_;
     
    3030    }
    3131
    32     void IdentifierList::remove(Identifier* identifier)
     32    void IdentifierList::remove(const Identifier* identifier)
    3333    {
    3434        if (!identifier)
     
    6060    }
    6161
    62     bool IdentifierList::isInList(Identifier* identifier)
     62    bool IdentifierList::isInList(const Identifier* identifier)
    6363    {
    6464        IdentifierListElement* temp = this->first_;
     
    9494    // ###  IdentifierListElement  ###
    9595    // ###############################
    96     IdentifierListElement::IdentifierListElement(Identifier* identifier)
     96    IdentifierListElement::IdentifierListElement(const Identifier* identifier)
    9797    {
    9898        this->identifier_ = identifier;
  • code/branches/objecthierarchie/src/IdentifierList.h

    r197 r239  
    1111    {
    1212        public:
    13             IdentifierListElement(Identifier* identifier);
     13            IdentifierListElement(const Identifier* identifier);
    1414            ~IdentifierListElement();
    1515
    16             Identifier* identifier_;
     16            const Identifier* identifier_;
    1717            IdentifierListElement* next_;
    1818            bool bDirect_;
     
    2424            IdentifierList();
    2525            ~IdentifierList();
    26             void add(Identifier* identifier);
    27             void remove(Identifier* identifier);
    28             bool isInList(Identifier* identifier);
     26            void add(const Identifier* identifier);
     27            void remove(const Identifier* identifier);
     28            bool isInList(const Identifier* identifier);
    2929            std::string toString();
    3030
  • code/branches/objecthierarchie/src/Iterator.h

    r225 r239  
    1010            Iterator()
    1111            {
    12                 this->elementForwards_ = ClassIdentifier<T>::getIdentifier()->objects_s.first_;
    13                 this->elementBackwards_ = ClassIdentifier<T>::getIdentifier()->objects_s.last_;
     12                this->elementForwards_ = ClassIdentifier<T>::getIdentifier()->objects_->first_;
     13                this->elementBackwards_ = ClassIdentifier<T>::getIdentifier()->objects_->last_;
    1414                this->iteratingForwards_ = true;
    1515            }
  • code/branches/objecthierarchie/src/OrxonoxClass.h

    r219 r239  
    1212            OrxonoxClass();
    1313            virtual ~OrxonoxClass();
    14             Identifier* getIdentifier() { return this->identifier_; }
    15             void setIdentifier(Identifier* identifier) { this->identifier_ = identifier; }
    16             IdentifierList* getParents() { return this->parents_; }
     14            const Identifier* getIdentifier() const { return this->identifier_; }
     15            void setIdentifier(const Identifier* identifier) { this->identifier_ = identifier; }
     16            IdentifierList* getParents() const { return this->parents_; }
    1717            void setParents(IdentifierList* parents) { this->parents_ = parents; }
    1818
    1919        private:
    20             Identifier* identifier_;
     20            const Identifier* identifier_;
    2121            IdentifierList* parents_;
    2222    };
Note: See TracChangeset for help on using the changeset viewer.