StringUnlimitedEntityMap_deserialize Subroutine

public subroutine StringUnlimitedEntityMap_deserialize(buffer, map, rc)

Arguments

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

Calls

proc~~stringunlimitedentitymap_deserialize~~CallsGraph proc~stringunlimitedentitymap_deserialize StringUnlimitedEntityMap_deserialize interface~deserialize_intrinsic deserialize_intrinsic proc~stringunlimitedentitymap_deserialize->interface~deserialize_intrinsic interface~serialize_buffer_length serialize_buffer_length proc~stringunlimitedentitymap_deserialize->interface~serialize_buffer_length none~insert~84 StringUnlimitedEntityMap%insert proc~stringunlimitedentitymap_deserialize->none~insert~84 proc~mapl_return MAPL_Return proc~stringunlimitedentitymap_deserialize->proc~mapl_return proc~unlimitedentity_deserialize UnlimitedEntity_deserialize proc~stringunlimitedentitymap_deserialize->proc~unlimitedentity_deserialize none~insert_pair~10 StringUnlimitedEntityMap%insert_pair none~insert~84->none~insert_pair~10 at at proc~mapl_return->at insert insert proc~mapl_return->insert proc~mapl_throw_exception MAPL_throw_exception proc~mapl_return->proc~mapl_throw_exception proc~unlimitedentity_deserialize->interface~deserialize_intrinsic proc~unlimitedentity_deserialize->interface~serialize_buffer_length proc~unlimitedentity_deserialize->proc~mapl_return interface~mapl_assert MAPL_Assert proc~unlimitedentity_deserialize->interface~mapl_assert none~get_rank UnlimitedEntity%get_rank proc~unlimitedentity_deserialize->none~get_rank none~set~63 UnlimitedEntity%set proc~unlimitedentity_deserialize->none~set~63 proc~mapl_verify MAPL_Verify proc~unlimitedentity_deserialize->proc~mapl_verify none~get_rank->proc~mapl_return none~get_shape UnlimitedEntity%get_shape none~get_rank->none~get_shape none~set~63->proc~mapl_return proc~mapl_verify->proc~mapl_throw_exception none~get_shape->proc~mapl_return

Source Code

    subroutine StringUnlimitedEntityMap_deserialize(buffer, map, rc) 
       integer, intent(in) :: buffer(:)
       type (StringUnlimitedEntityMap), intent(inout) :: map
       integer, optional, intent(out) :: rc

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

       n = 1
       call deserialize_intrinsic(buffer(n:),length)
       n0 = serialize_buffer_length(length)
       n = n + n0
       length = length - n0

       map = StringUnlimitedEntityMap()
       do while (length > 0)
          call deserialize_intrinsic(buffer(n:),key)
          n1 = serialize_buffer_length(key)
          n = n + n1
          call deserialize_intrinsic(buffer(n:),n2)
          call UnlimitedEntity_deserialize(buffer(n:), attr)
          n = n + n2
          length = length - n1 - n2
          call map%insert(key,attr)
          deallocate(key)
       enddo
       _RETURN(_SUCCESS)
    end subroutine StringUnlimitedEntityMap_deserialize