MetaData::MetaData() : m_commit( false ), m_part_repo( this ), m_attributes(), m_universal_part( NULL ), m_owns_part( NULL ), m_shares_part( NULL ), m_field_repo(), m_field_relations( ), m_properties( ), m_entity_rank_names( ) { // Declare the predefined parts m_universal_part = m_part_repo.universal_part(); m_owns_part = & declare_part( std::string("{OWNS}") ); m_shares_part = & declare_part( std::string("{SHARES}") ); }
MetaData::MetaData(const std::vector<std::string>& entity_rank_names) : m_commit( false ), m_part_repo( this ), m_attributes(), m_universal_part( NULL ), m_owns_part( NULL ), m_shares_part( NULL ), m_field_repo(), m_field_relations( ), m_properties( ), m_entity_rank_names( entity_rank_names ) { ThrowErrorMsgIf( entity_rank_names.empty(), "entity ranks empty" ); // Declare the predefined parts m_universal_part = m_part_repo.universal_part(); m_owns_part = & declare_part( std::string("{OWNS}") ); m_shares_part = & declare_part( std::string("{SHARES}") ); }
MetaData::MetaData() : m_commit( false ), m_universal_part( *this , std::string( "{UNIVERSAL}" ) , 0 ), m_uses_part( NULL ), m_owns_part( NULL ) { // Declare remaining predefined parts const std::string uses_part_name( "{USES}" ); const std::string owns_part_name( "{OWNS}" ); { Part * u = & m_universal_part ; m_universal_part.m_subsets.push_back( u ); } m_uses_part = & declare_part( uses_part_name ); m_owns_part = & declare_part( owns_part_name ); declare_part_subset( * m_uses_part , * m_owns_part ); }