StringAttributeMap_deserialize Subroutine

public subroutine StringAttributeMap_deserialize(buffer, map, rc)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: buffer(:)
type(StringAttributeMap), intent(inout) :: map
integer, intent(out), optional :: rc

Calls

proc~~stringattributemap_deserialize~~CallsGraph proc~stringattributemap_deserialize pFIO_StringAttributeMapUtilMod::StringAttributeMap_deserialize interface~deserialize_intrinsic pFIO_UtilitiesMod::deserialize_intrinsic proc~stringattributemap_deserialize->interface~deserialize_intrinsic interface~mapl_assert MAPL_ErrorHandlingMod::MAPL_Assert proc~stringattributemap_deserialize->interface~mapl_assert interface~serialize_buffer_length pFIO_UtilitiesMod::serialize_buffer_length proc~stringattributemap_deserialize->interface~serialize_buffer_length none~insert~2 pFIO_StringAttributeMapMod::StringAttributeMap%insert proc~stringattributemap_deserialize->none~insert~2 proc~attribute_deserialize pFIO_AttributeMod::Attribute_deserialize proc~stringattributemap_deserialize->proc~attribute_deserialize proc~mapl_return MAPL_ErrorHandlingMod::MAPL_Return proc~stringattributemap_deserialize->proc~mapl_return proc~mapl_verify MAPL_ErrorHandlingMod::MAPL_Verify proc~stringattributemap_deserialize->proc~mapl_verify none~insert_pair pFIO_StringAttributeMapMod::StringAttributeMap%insert_pair none~insert~2->none~insert_pair proc~attribute_deserialize->proc~mapl_return proc~attribute_deserialize->proc~mapl_verify proc~unlimitedentity_deserialize pFIO_UnlimitedEntityMod::UnlimitedEntity_deserialize proc~attribute_deserialize->proc~unlimitedentity_deserialize at at proc~mapl_return->at insert insert proc~mapl_return->insert proc~mapl_throw_exception MAPL_ThrowMod::MAPL_throw_exception proc~mapl_return->proc~mapl_throw_exception proc~mapl_verify->proc~mapl_throw_exception proc~unlimitedentity_deserialize->interface~deserialize_intrinsic proc~unlimitedentity_deserialize->interface~mapl_assert proc~unlimitedentity_deserialize->interface~serialize_buffer_length proc~unlimitedentity_deserialize->proc~mapl_return proc~unlimitedentity_deserialize->proc~mapl_verify none~get_rank pFIO_UnlimitedEntityMod::UnlimitedEntity%get_rank proc~unlimitedentity_deserialize->none~get_rank none~set pFIO_UnlimitedEntityMod::UnlimitedEntity%set proc~unlimitedentity_deserialize->none~set none~get_rank->proc~mapl_return none~get_shape pFIO_UnlimitedEntityMod::UnlimitedEntity%get_shape none~get_rank->none~get_shape none~set->proc~mapl_return

Called by

proc~~stringattributemap_deserialize~~CalledByGraph proc~stringattributemap_deserialize pFIO_StringAttributeMapUtilMod::StringAttributeMap_deserialize proc~variable_deserialize pFIO_VariableMod::Variable_deserialize proc~variable_deserialize->proc~stringattributemap_deserialize program~main~4 main program~main~4->proc~stringattributemap_deserialize proc~coordinatevariable_deserialize pFIO_CoordinateVariableMod::CoordinateVariable_deserialize proc~coordinatevariable_deserialize->proc~variable_deserialize proc~filemetadata_deserialize pFIO_FileMetadataMod::FileMetadata_deserialize proc~filemetadata_deserialize->proc~variable_deserialize proc~stringvariablemap_deserialize pFIO_StringVariableMapUtilMod::StringVariableMap_deserialize proc~filemetadata_deserialize->proc~stringvariablemap_deserialize proc~stringvariablemap_deserialize->proc~variable_deserialize proc~stringvariablemap_deserialize->proc~coordinatevariable_deserialize proc~test_serialize~2 Test_Variable::test_serialize proc~test_serialize~2->proc~variable_deserialize proc~historycollectionvector_deserialize pFIO_HistoryCollectionVectorUtilMod::HistoryCollectionVector_deserialize proc~historycollectionvector_deserialize->proc~filemetadata_deserialize proc~test_serialize~4 Test_CoordinateVariable::test_serialize proc~test_serialize~4->proc~coordinatevariable_deserialize proc~test_serialize~5 Test_FileMetadata::test_serialize proc~test_serialize~5->proc~filemetadata_deserialize

Source Code

    subroutine StringAttributeMap_deserialize(buffer, map, rc)
       integer, intent(in) :: buffer(:)
       type (StringAttributeMap), intent(inout) :: map
       integer, optional, intent(out) :: rc

       character(len=:),allocatable :: key
       integer :: length,n,n0,n1,n2
       type (Attribute) :: attr
       integer :: status

       n = 1
       call deserialize_intrinsic(buffer(n:),length)
       _ASSERT(length == size(buffer), "length does not match")

       n0 = serialize_buffer_length(length)
       n = n + n0
       length = length - n0

       map = StringAttributeMap()
       do while (length > 0)
          call deserialize_intrinsic(buffer(n:),key)
          n1 = serialize_buffer_length(key)
          n = n + n1
          !allocate(attr)
          call deserialize_intrinsic(buffer(n:),n2)
          call Attribute_deserialize(buffer(n:n+n2-1), attr, status)
          _VERIFY(status)
          n = n + n2
          length = length - n1 - n2
          call map%insert(key,attr)
          deallocate(key)
          !deallocate(attr)
       enddo
       _RETURN(_SUCCESS)
    end subroutine StringAttributeMap_deserialize