D3PD::ObjectMetadata Node1 D3PD::ObjectMetadata + RANDOM_NAME_POSTFIX _LENGTH + STRING_SEPARATOR + SERIALIZER_VERSION # m_container + ObjectMetadata() + ObjectMetadata() + operator=() + operator==() + operator<() + addVariable() + addDimensionedVariable() + name() + setName() + ATLAS_NOT_THREAD_SAFE() and 16 more... + objectName() - ATLAS_NOT_THREAD_SAFE() Node2 D3PD::IAddVariable + ~IAddVariable() + addVariable() + addVariable() + addDimensionedVariable() + addDimensionedVariable() + addVariable() + addDimensionedVariable() Node2->Node1 Node3 std::string Node3->Node1 #m_name #m_prefix Node6 D3PD::ObjectMetadata ::Variable + STRING_SEPARATOR - m_primitive + Variable() + type() + name() + doc() + primitive() + setType() + setName() + setDoc() + setPrimitive() + toString() + read() + operator==() + operator<() Node3->Node6 -m_doc -m_type -m_name Node4 std::basic_string< char > Node4->Node3 Node5 std::set< D3PD::ObjectMetadata ::Variable > Node5->Node1 #m_variables Node6->Node5 +keys