00001 /*-------------------------------------------------------------------- 00002 * 00003 * (C) Copyright Koninklijke Philips Electronics NV 2006. 00004 * All rights reserved. This software is licensed under the terms of 00005 * version 2.1 of the GNU Lesser General Public License as published 00006 * by the Free Software Foundation. For licensing and warranty 00007 * information, see the file COPYING in the main directory. 00008 * 00009 *------------------------------------------------------------------*/ 00010 00011 #ifndef ID_BASE_H 00012 #define ID_BASE_H 00013 00014 // class IdBase : Base class for identification of objects by name and type 00015 00016 class IdBase 00017 { 00018 public: 00019 IdBase(const char*, IdBase*); 00020 IdBase(const IdBase&); 00021 virtual ~IdBase(); 00022 00023 IdBase& operator+(char c); 00024 IdBase& operator+(const char* str); 00025 IdBase& operator=(const IdBase&); 00026 00027 IdBase* parent() const; 00028 const char* name() const; 00029 const char* fullName(char* buf=0) const; 00030 00031 operator const char*() const; 00032 00033 IdBase id(const char*); 00034 00035 private: 00036 char* nm; // name 00037 IdBase* pa; // parent 00038 }; 00039 00040 #endif