00001 // 00002 // See license.txt for license information. 00003 // 00004 // nameable_object.hpp 00005 // 00006 // 27-Mar-2006 phamilton Created 00007 // 00008 00009 #ifndef incCOMMON_NAMEABLE_OBJECT 00010 #define incCOMMON_NAMEABLE_OBJECT 00011 00012 // forwards 00013 #include <string> 00014 #include "object.hpp" 00015 00016 namespace ph { 00017 namespace common { 00018 00019 class nameable_object_base 00020 /** 00021 Abstract class representing the interface for an object that cann be named. 00022 */ 00023 { 00024 public: 00025 virtual ~nameable_object_base() {}; 00026 00027 virtual std::string name() const = 0; 00028 //!< Get the name of the object. 00029 //! 00030 virtual std::string type() const = 0; 00031 //!< Get the type of the object. 00032 //! 00033 }; 00034 00035 }; // common 00036 }; // ph 00037 00038 #endif // incCOMMON_NAMEABLE_OBJECT