Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 7, 2015, 2:16:55 PM (10 years ago)
Author:
landauf
Message:

clean and explicit setup/shutdown of singletons that are used by statically initialized instances

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/core7/src/libraries/core/commandline/CommandLineParser.cc

    r10520 r10542  
    4040namespace orxonox
    4141{
     42    CommandLineParser* CommandLineParser::singletonPtr_s = 0;
     43
    4244    /**
    4345    @brief
     
    8587    CommandLineParser::~CommandLineParser()
    8688    {
    87     }
    88 
    89     /**
    90     @brief
    91         Returns a unique instance (Meyers Singleton).
    92     */
    93     CommandLineParser& CommandLineParser::_getInstance()
    94     {
    95         static CommandLineParser instance;
    96         return instance;
    9789    }
    9890
     
    260252    std::string CommandLineParser::getUsageInformation()
    261253    {
    262         CommandLineParser& inst = _getInstance();
     254        CommandLineParser& inst = getInstance();
    263255        std::ostringstream infoStr;
    264256
     
    313305    const CommandLineArgument* CommandLineParser::getArgument(const std::string& name)
    314306    {
    315         std::map<std::string, CommandLineArgument*>::const_iterator it = _getInstance().cmdLineArgs_.find(name);
    316         if (it == _getInstance().cmdLineArgs_.end())
     307        std::map<std::string, CommandLineArgument*>::const_iterator it = getInstance().cmdLineArgs_.find(name);
     308        if (it == getInstance().cmdLineArgs_.end())
    317309        {
    318310            ThrowException(Argument, "Could find command line argument '" + name + "'.");
     
    331323    void CommandLineParser::addArgument(CommandLineArgument* argument)
    332324    {
    333         OrxAssert(!_getInstance().existsArgument(argument->getName()),
     325        OrxAssert(!getInstance().existsArgument(argument->getName()),
    334326            "Cannot add a command line argument with name '" + argument->getName() + "' twice.");
    335327        OrxAssert(!argument->getDefaultValue().isType<bool>() || argument->getDefaultValue().get<bool>() != true,
     
    337329            << "Please use SetCommandLineSwitch and adjust your argument: " << argument->getName());
    338330
    339         _getInstance().cmdLineArgs_[argument->getName()] = argument;
     331        getInstance().cmdLineArgs_[argument->getName()] = argument;
    340332    }
    341333
     
    345337    void CommandLineParser::removeArgument(CommandLineArgument* argument)
    346338    {
    347         _getInstance().cmdLineArgs_.erase(argument->getName());
     339        getInstance().cmdLineArgs_.erase(argument->getName());
    348340    }
    349341}
Note: See TracChangeset for help on using the changeset viewer.