00001 /*---------------------------------------------------------------------------*\ 00002 * OpenSG * 00003 * * 00004 * * 00005 * Copyright (C) 2000-2002 by the OpenSG Forum * 00006 * * 00007 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de * 00008 * * 00009 \*---------------------------------------------------------------------------*/ 00010 /*---------------------------------------------------------------------------*\ 00011 * License * 00012 * * 00013 * This library is free software; you can redistribute it and/or modify it * 00014 * under the terms of the GNU Library General Public License as published * 00015 * by the Free Software Foundation, version 2. * 00016 * * 00017 * This library is distributed in the hope that it will be useful, but * 00018 * WITHOUT ANY WARRANTY; without even the implied warranty of * 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00020 * Library General Public License for more details. * 00021 * * 00022 * You should have received a copy of the GNU Library General Public * 00023 * License along with this library; if not, write to the Free Software * 00024 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 00025 * * 00026 \*---------------------------------------------------------------------------*/ 00027 /*---------------------------------------------------------------------------*\ 00028 * Changes * 00029 * * 00030 * * 00031 * * 00032 * * 00033 * * 00034 * * 00035 \*---------------------------------------------------------------------------*/ 00036 00037 //--------------------------------------------------------------------------- 00038 // Includes 00039 //--------------------------------------------------------------------------- 00040 00041 #include <OSGConfig.h> 00042 00043 OSG_BEGIN_NAMESPACE 00044 00050 inline const MFString& StringAttributeMap::getKeys() const 00051 { 00052 return StringAttributeMapBase::getKeys(); 00053 } 00054 00060 inline bool StringAttributeMap::hasAttribute(const std::string& key) const 00061 { 00062 return getKeys().find(key) != getKeys().end(); 00063 } 00064 00071 inline const std::string StringAttributeMap::getAttribute(const std::string& key) 00072 const 00073 { 00074 std::string value; 00075 getAttribute(key, value); 00076 return value; 00077 } 00078 00098 inline std::string& StringAttributeMap::operator[](const std::string& key) 00099 { 00100 MFString& keys = this->StringAttributeMapBase::getKeys(); 00101 MFString& values = this->StringAttributeMapBase::getValues(); 00102 00103 unsigned int index(0); 00104 for ( MFString::iterator i = keys.begin(); i != keys.end(); ++i, ++index ) 00105 { 00106 if ( *i == key ) 00107 { 00108 return values[index]; 00109 } 00110 } 00111 00112 keys.push_back(key); 00113 values.push_back(std::string("")); 00114 00115 // The value we want to return is at the end of _mfValues. 00116 return values[values.size() - 1]; 00117 } 00118 00119 OSG_END_NAMESPACE 00120 00121 #define OSGSTRINGATTRIBUTEMAP_INLINE_CVSID "@(#)$Id: OSGStringAttributeMap.inl,v 1.2 2005/09/28 03:01:44 vossg Exp $" 00122
1.5.5