Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 2171 for code/trunk/src/core


Ignore:
Timestamp:
Nov 10, 2008, 12:05:03 AM (16 years ago)
Author:
landauf
Message:

merged revisions 2111-2170 from objecthierarchy branch back to trunk.

Location:
code/trunk
Files:
34 edited

Legend:

Unmodified
Added
Removed
  • code/trunk

  • code/trunk/src/core/BaseObject.cc

    r2087 r2171  
    4141#include "Template.h"
    4242#include "util/String.h"
     43#include "util/mbool.h"
    4344
    4445namespace orxonox
  • code/trunk/src/core/BaseObject.h

    r2087 r2171  
    2828
    2929/**
    30     @file BaseObject.h
     30    @file
    3131    @brief Definition of the BaseObject class.
    3232
     
    4545#include "XMLIncludes.h"
    4646#include "Event.h"
     47#include "util/mbool.h"
    4748
    4849namespace orxonox
     
    7273
    7374            /** @brief Sets the state of the objects activity. @param bActive True = active */
    74             inline void setActive(bool bActive) { this->bActive_ = bActive; this->changedActivity(); }
     75            inline void setActive(bool bActive)
     76            {
     77                if (this->bActive_ != bActive)
     78                {
     79                    this->bActive_ = bActive;
     80                    this->changedActivity();
     81                }
     82            }
    7583            /** @brief Returns the state of the objects activity. @return The state of the activity */
    76             inline bool isActive() const { return this->bActive_; }
     84            inline const mbool& isActive() const { return this->bActive_; }
    7785            /** @brief This function gets called if the activity of the object changes. */
    7886            virtual void changedActivity() {}
    7987
    8088            /** @brief Sets the state of the objects visibility. @param bVisible True = visible */
    81             inline void setVisible(bool bVisible) { this->bVisible_ = bVisible; this->changedVisibility(); }
     89            inline void setVisible(bool bVisible)
     90            {
     91                if (this->bVisible_ != bVisible)
     92                {
     93                    this->bVisible_ = bVisible;
     94                    this->changedVisibility();
     95                }
     96            }
    8297            /** @brief Returns the state of the objects visibility. @return The state of the visibility */
    83             inline bool isVisible() const { return this->bVisible_; }
     98            inline const mbool& isVisible() const { return this->bVisible_; }
    8499            /** @brief This function gets called if the visibility of the object changes. */
    85100            virtual void changedVisibility() {}
     
    138153            std::string name_;                          //!< The name of the object
    139154            std::string oldName_;                       //!< The old name of the object
    140             bool bActive_;                              //!< True = the object is active
    141             bool bVisible_;                             //!< True = the object is visible
     155            mbool bActive_;                             //!< True = the object is active
     156            mbool bVisible_;                            //!< True = the object is visible
    142157
    143158        private:
  • code/trunk/src/core/ClassFactory.h

    r2087 r2171  
    2828
    2929/**
    30     @file ClassFactory.h
     30    @file
    3131    @brief Definition and implementation of the ClassFactory class
    3232
  • code/trunk/src/core/ClassTreeMask.cc

    r1757 r2171  
    2828
    2929/**
    30     @file ClassTreeMask.cc
     30    @file
    3131    @brief Implementation of the ClassTreeMask, ClassTreeMaskNode and ClassTreeMaskIterator classes.
    3232*/
  • code/trunk/src/core/ClassTreeMask.h

    r1759 r2171  
    2828
    2929/**
    30     @file ClassTreeMask.h
     30    @file
    3131    @brief Definition of the ClassTreeMask, ClassTreeMaskNode and ClassTreeMaskIterator classes.
    3232
  • code/trunk/src/core/Clock.h

    r1755 r2171  
    2828
    2929/**
    30     @file Core.h
     30    @file
    3131    @brief Declaration of the Core class.
    3232
  • code/trunk/src/core/ConfigValueContainer.cc

    r1887 r2171  
    2828
    2929/**
    30     @file ConfigValueContainer.cc
     30    @file
    3131    @brief Implementation of the ConfigValueContainer class.
    3232*/
  • code/trunk/src/core/ConfigValueContainer.h

    r2087 r2171  
    2828
    2929/**
    30     @file ConfigValueContainer.h
     30    @file
    3131    @brief Definition of the ConfigValueContainer class.
    3232
  • code/trunk/src/core/ConfigValueIncludes.h

    r2103 r2171  
    2828
    2929/**
    30     @file ConfigValueIncludes.h
     30    @file
    3131    @brief Definition of macros for config-values.
    3232*/
  • code/trunk/src/core/Core.cc

    r2087 r2171  
    2828
    2929/**
    30     @file Core.cc
     30    @file
    3131    @brief Implementation of the Core class.
    3232*/
  • code/trunk/src/core/Core.h

    r2087 r2171  
    2828
    2929/**
    30     @file Core.h
     30    @file
    3131    @brief Declaration of the Core class.
    3232
  • code/trunk/src/core/CoreIncludes.h

    r2103 r2171  
    2828
    2929/**
    30     @file CoreIncludes.h
     30    @file
    3131    @brief Definition of macros for Identifier and Factory.
    3232
  • code/trunk/src/core/Factory.cc

    r2087 r2171  
    2828
    2929/**
    30     @file Factory.cc
     30    @file
    3131    @brief Implementation of the Factory class.
    3232*/
  • code/trunk/src/core/Factory.h

    r2087 r2171  
    2828
    2929/**
    30     @file Factory.h
     30    @file
    3131    @brief Definition of the Factory and the BaseFactory class.
    3232
  • code/trunk/src/core/Identifier.cc

    r2087 r2171  
    2828
    2929/**
    30     @file Identifier.cc
     30    @file
    3131    @brief Implementation of the Identifier class.
    3232*/
  • code/trunk/src/core/Identifier.h

    r2103 r2171  
    2828
    2929/**
    30     @file Identifier.h
     30    @file
    3131    @brief Definition of the Identifier, ClassIdentifier and SubclassIdentifier classes, implementation of the ClassIdentifier and SubclassIdentifier classes.
    3232
  • code/trunk/src/core/Iterator.h

    r1854 r2171  
    2828
    2929/**
    30     @file Iterator.h
     30    @file
    3131    @brief Definition and implementation of the Iterator class.
    3232
  • code/trunk/src/core/Language.cc

    r2103 r2171  
    2828
    2929/**
    30     @file Language.cc
     30    @file
    3131    @brief Implementation of the Language and the LanguageEntry classes.
    3232*/
  • code/trunk/src/core/Language.h

    r2103 r2171  
    2828
    2929/**
    30     @file Language.h
     30    @file
    3131    @brief Definition of the Language and the LanguageEntry class.
    3232
  • code/trunk/src/core/Loader.cc

    r2087 r2171  
    3737#include "Namespace.h"
    3838#include "util/Debug.h"
     39#include "util/Exception.h"
    3940
    4041#include "tinyxml/ticpp.h"
     
    157158            return true;
    158159        }
    159         catch(ticpp::Exception& ex)
     160        catch (ticpp::Exception& ex)
     161        {
     162            COUT(1) << std::endl;
     163            COUT(1) << "An XML-error occurred in Loader.cc while loading " << file->getFilename() << ":" << std::endl;
     164            COUT(1) << ex.what() << std::endl;
     165            COUT(1) << "Loading aborted." << std::endl;
     166            return false;
     167        }
     168        catch (Exception& ex)
     169        {
     170            COUT(1) << std::endl;
     171            COUT(1) << "A loading-error occurred in Loader.cc while loading " << file->getFilename() << ":" << std::endl;
     172            COUT(1) << ex.what() << std::endl;
     173            COUT(1) << "Loading aborted." << std::endl;
     174            return false;
     175        }
     176        catch (std::exception& ex)
    160177        {
    161178            COUT(1) << std::endl;
    162179            COUT(1) << "An error occurred in Loader.cc while loading " << file->getFilename() << ":" << std::endl;
    163180            COUT(1) << ex.what() << std::endl;
     181            COUT(1) << "Loading aborted." << std::endl;
     182            return false;
     183        }
     184        catch (...)
     185        {
     186            COUT(1) << std::endl;
     187            COUT(1) << "An unknown error occurred in Loader.cc while loading " << file->getFilename() << ":" << std::endl;
    164188            COUT(1) << "Loading aborted." << std::endl;
    165189            return false;
  • code/trunk/src/core/MetaObjectList.cc

    r1747 r2171  
    2828
    2929/**
    30     @file MetaObjectList.cc
     30    @file
    3131    @brief Implementation of the MetaObjectList class.
    3232*/
  • code/trunk/src/core/MetaObjectList.h

    r1747 r2171  
    2828
    2929/**
    30     @file MetaObjectList.h
     30    @file
    3131    @brief Definition of the MetaObjectList class.
    3232
  • code/trunk/src/core/ObjectList.h

    r1747 r2171  
    2828
    2929/**
    30     @file ObjectList.h
     30    @file
    3131    @brief Definition and implementation of the ObjectList class.
    3232
  • code/trunk/src/core/ObjectListBase.cc

    r1747 r2171  
    2828
    2929/**
    30     @file ObjectListBase.cc
     30    @file
    3131    @brief Implementation of the ObjectListBase class.
    3232
  • code/trunk/src/core/ObjectListBase.h

    r1854 r2171  
    2828
    2929/**
    30     @file ObjectListBase.h
     30    @file
    3131    @brief Definition of the ObjectListBase class.
    3232
  • code/trunk/src/core/OrxonoxClass.cc

    r1747 r2171  
    2828
    2929/**
    30     @file OrxonoxClass.cc
     30    @file
    3131    @brief Implementation of the OrxonoxClass Class.
    3232*/
  • code/trunk/src/core/OrxonoxClass.h

    r1755 r2171  
    2828
    2929/**
    30     @file OrxonoxClass.h
     30    @file
    3131    @brief Declaration of the OrxonoxClass Class.
    3232
  • code/trunk/src/core/Super.h

    r2087 r2171  
    2828
    2929/**
    30     @file Super.h
     30    @file
    3131    @brief Definition of all super-function related macros.
    3232
  • code/trunk/src/core/Template.cc

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • code/trunk/src/core/Template.h

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • code/trunk/src/core/XMLFile.h

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • code/trunk/src/core/XMLIncludes.h

    r2103 r2171  
    2828
    2929/**
    30     @file XMLIncludes.h
     30    @file
    3131    @brief Forward declarations of some XML classes.
    3232*/
  • code/trunk/src/core/XMLPort.h

    r2087 r2171  
    2828
    2929/**
    30     @file XMLPort.h
     30    @file
    3131    @brief Declaration of the XMLPort helper classes and macros.
    3232
     
    4444
    4545#include "util/Debug.h"
     46#include "util/Exception.h"
    4647#include "util/MultiType.h"
    4748#include "tinyxml/ticpp.h"
     
    495496                                            if (this->identifierIsIncludedInLoaderMask(identifier))
    496497                                            {
    497                                                 COUT(4) << ((BaseObject*)object)->getLoaderIndentation() << "fabricating " << child->Value() << "..." << std::endl;
    498 
    499                                                 BaseObject* newObject = identifier->fabricate((BaseObject*)object);
    500                                                 assert(newObject);
    501                                                 newObject->setLoaderIndentation(((BaseObject*)object)->getLoaderIndentation() + "  ");
    502 
    503                                                 O* castedObject = dynamic_cast<O*>(newObject);
    504                                                 assert(castedObject);
    505 
    506                                                 if (this->bLoadBefore_)
     498                                                try
    507499                                                {
    508                                                     newObject->XMLPort(*child, XMLPort::LoadObject);
    509                                                     COUT(4) << ((BaseObject*)object)->getLoaderIndentation() << "assigning " << child->Value() << " (objectname " << newObject->getName() << ") to " << this->identifier_->getName() << " (objectname " << ((BaseObject*)object)->getName() << ")" << std::endl;
     500                                                    COUT(4) << ((BaseObject*)object)->getLoaderIndentation() << "fabricating " << child->Value() << "..." << std::endl;
     501
     502                                                    BaseObject* newObject = identifier->fabricate((BaseObject*)object);
     503                                                    assert(newObject);
     504                                                    newObject->setLoaderIndentation(((BaseObject*)object)->getLoaderIndentation() + "  ");
     505
     506                                                    O* castedObject = dynamic_cast<O*>(newObject);
     507                                                    assert(castedObject);
     508
     509                                                    if (this->bLoadBefore_)
     510                                                    {
     511                                                        newObject->XMLPort(*child, XMLPort::LoadObject);
     512                                                        COUT(4) << ((BaseObject*)object)->getLoaderIndentation() << "assigning " << child->Value() << " (objectname " << newObject->getName() << ") to " << this->identifier_->getName() << " (objectname " << ((BaseObject*)object)->getName() << ")" << std::endl;
     513                                                    }
     514                                                    else
     515                                                    {
     516                                                        COUT(4) << ((BaseObject*)object)->getLoaderIndentation() << "assigning " << child->Value() << " (object not yet loaded) to " << this->identifier_->getName() << " (objectname " << ((BaseObject*)object)->getName() << ")" << std::endl;
     517                                                    }
     518
     519                                                    COUT(5) << ((BaseObject*)object)->getLoaderIndentation();
     520                                                    (*this->loadexecutor_)(object, castedObject);
     521
     522                                                    if (!this->bLoadBefore_)
     523                                                        newObject->XMLPort(*child, XMLPort::LoadObject);
     524
     525                                                    COUT(5) << ((BaseObject*)object)->getLoaderIndentation() << "...fabricated " << child->Value() << " (objectname " << newObject->getName() << ")." << std::endl;
    510526                                                }
    511                                                 else
     527                                                catch (AbortLoadingException& ex)
    512528                                                {
    513                                                     COUT(4) << ((BaseObject*)object)->getLoaderIndentation() << "assigning " << child->Value() << " (object not yet loaded) to " << this->identifier_->getName() << " (objectname " << ((BaseObject*)object)->getName() << ")" << std::endl;
     529                                                    COUT(1) << "An error occurred while loading object, abort loading..." << std::endl;
     530                                                    throw ex;
    514531                                                }
    515 
    516                                                 COUT(5) << ((BaseObject*)object)->getLoaderIndentation();
    517                                                 (*this->loadexecutor_)(object, castedObject);
    518 
    519                                                 if (!this->bLoadBefore_)
    520                                                     newObject->XMLPort(*child, XMLPort::LoadObject);
    521 
    522                                                 COUT(5) << ((BaseObject*)object)->getLoaderIndentation() << "...fabricated " << child->Value() << " (objectname " << newObject->getName() << ")." << std::endl;
     532                                                catch (std::exception& ex)
     533                                                {
     534                                                    COUT(1) << "An error occurred while loading object:" << std::endl;
     535                                                    COUT(1) << ex.what() << std::endl;
     536                                                }
     537                                                catch (...)
     538                                                {
     539                                                    COUT(1) << "An unknown error occurred while loading object." << std::endl;
     540                                                }
    523541                                            }
    524542                                        }
Note: See TracChangeset for help on using the changeset viewer.