/* * Name.h * openChams * * Created by damien dupuis on 18/12/09. * Copyright 2009 UPMC / LIP6. All rights reserved. * */ #ifndef __OPENCHAMS_NAME_H__ #define __OPENCHAMS_NAME_H__ #include #include #include "OpenChamsException.h" namespace OpenChams { class Name { public: Name(std::string); Name(const char*); bool operator==(const Name&); bool operator==(const std::string&); bool operator<(const Name) const; inline const std::string& getString() const; private: unsigned long _id; const std::string *_str; static std::map _dict; static unsigned long _globalId; }; inline const std::string& Name::getString() const{ if (!_str) { throw OpenChamsException("[ERROR] Name object has no string"); } return *_str; } } // namespace #endif