void attribute_map::add_attribute( const attribute& newAttrib ) { if( !m_defining ) { throw std::runtime_error( "attribute_map.add_attribute: Failed to add attribut(" + newAttrib.get_name() + ") because attribute map is not being defined." ); } if( m_attribNames.find( newAttrib.get_name() ) != m_attribNames.end() ) { throw std::runtime_error( "attribute_map.add_attribute: Failed to add attribute(" + newAttrib.get_name() + ") because attribute map already has an attribute of the same name." ); } m_attributes.push_back( newAttrib ); m_attribNames.insert( newAttrib.get_name() ); ++m_attribCount; }
void verify_attribute_name( const attribute& attr, const string& name_expected ) { if( attr.get_name( ) != name_expected ) throw runtime_error( "expecting attribute named '" + name_expected + "' but found attribute named '" + attr.get_name( ) + "'" ); }
bool attribute::operator < (attribute &a) { if(strcmp(m_name,a.get_name()) < 0) return true; return false; }