Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 5, 2008, 2:18:14 PM (16 years ago)
Author:
rgrieder
Message:
  • applied patch to remove ClassManager (wouldn't wanna maintain it anymore ;))
  • sorted core CMLs a little bit
  • updated OrxonoxStableHeaders.h
File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/trunk/src/core/IdentifierDistributor.cc

    r1505 r1543  
    1 /*
    2  *   ORXONOX - the hottest 3D action shooter ever to exist
    3  *                    > www.orxonox.net <
    4  *
    5  *
    6  *   License notice:
    7  *
    8  *   This program is free software; you can redistribute it and/or
    9  *   modify it under the terms of the GNU General Public License
    10  *   as published by the Free Software Foundation; either version 2
    11  *   of the License, or (at your option) any later version.
    12  *
    13  *   This program is distributed in the hope that it will be useful,
    14  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
    15  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16  *   GNU General Public License for more details.
    17  *
    18  *   You should have received a copy of the GNU General Public License
    19  *   along with this program; if not, write to the Free Software
    20  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    21  *
    22  *   Author:
    23  *      Fabian 'x3n' Landau
    24  *   Co-authors:
    25  *      ...
    26  *
    27  */
    28 
    29 /**
    30     @file IdentifierDistributor.cc
    31     @brief Implementation of the IdentifierDistributor class.
    32 */
    33 
    34 #include "IdentifierDistributor.h"
    35 #include "Identifier.h"
    36 
    37 namespace orxonox
    38 {
    39     /**
    40         @brief Returns the only instance of a ClassIdentifier for a given class.
    41         @param name The name of the class
    42         @param proposal A proposal for the ClassIdentifier in case there is no entry yet.
    43         @return The unique ClassIdentifier
    44     */
    45     Identifier* IdentifierDistributor::getIdentifier(const std::string& name, Identifier* proposal)
    46     {
    47         // Create the only instance of the IdentifierDistributor-singleton
    48         static IdentifierDistributor theOneAndOnlyInstance = IdentifierDistributor();
    49 
    50         // Look for an entry in the map
    51         std::map<std::string, Identifier*>::const_iterator it = theOneAndOnlyInstance.identifiers_.find(name);
    52         if (it != theOneAndOnlyInstance.identifiers_.end())
    53         {
    54             // There is already an entry: return it
    55             return (*it).second;
    56         }
    57         else
    58         {
    59             // There is no entry: put the proposal into the map and return it
    60             theOneAndOnlyInstance.identifiers_[name] = proposal;
    61             return proposal;
    62         }
    63     }
    64 }
Note: See TracChangeset for help on using the changeset viewer.