AbstractDataReference Derived Type

type, public, abstract :: AbstractDataReference


Inherits

type~~abstractdatareference~~InheritsGraph type~abstractdatareference AbstractDataReference c_ptr c_ptr type~abstractdatareference->c_ptr base_address

Inherited by

type~~abstractdatareference~~InheritedByGraph type~abstractdatareference AbstractDataReference type~abstractrequesthandle AbstractRequestHandle type~abstractrequesthandle->type~abstractdatareference data_reference type~arrayreference ArrayReference type~arrayreference->type~abstractdatareference type~localmemreference LocalMemReference type~localmemreference->type~abstractdatareference type~rdmareference RDMAReference type~rdmareference->type~abstractdatareference type~shmemreference ShmemReference type~shmemreference->type~abstractdatareference type~v_wrapper~10 v_Wrapper type~v_wrapper~10->type~abstractdatareference item type~abstractdatareferencevector AbstractDataReferenceVector type~abstractdatareferencevector->type~v_wrapper~10 elements type~abstractdatareferencevectoriterator AbstractDataReferenceVectorIterator type~abstractdatareferencevectoriterator->type~v_wrapper~10 elements type~abstractdatareferencevectorriterator AbstractDataReferenceVectorRIterator type~abstractdatareferencevectorriterator->type~v_wrapper~10 elements type~pair~8 pair type~pair~8->type~abstractrequesthandle value type~pair~9 pair type~pair~9->type~shmemreference value type~abstractserver AbstractServer type~abstractserver->type~abstractdatareferencevector dataRefPtrs type~multicommserver MultiCommServer type~multicommserver->type~abstractdatareferencevector MemdataRefPtrs type~tvector~8 tVector type~tvector~8->type~pair~8 elements type~tvector~9 tVector type~tvector~9->type~pair~9 elements type~baseserver BaseServer type~baseserver->type~abstractserver type~serverthread ServerThread type~serverthread->type~abstractserver containing_server type~set2~10 set2 type~set2~10->type~tvector~9 items type~set2~9 set2 type~set2~9->type~tvector~8 items

Components

Type Visibility Attributes Name Initial
integer, public, allocatable :: shape(:)
integer, public :: type_kind
type(c_ptr), public :: base_address = C_NULL_PTR

Type-Bound Procedures

procedure, public :: allocate

  • private subroutine allocate(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(inout) :: this
    integer, intent(out), optional :: rc

procedure, public :: convert_addr

  • private function convert_addr(this) result(long)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(in), target :: this

    Return Value integer(kind=INT64)

procedure, public :: copy_data_to

  • private subroutine copy_data_to(this, to, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(in) :: this
    class(AbstractDataReference), intent(inout) :: to
    integer, intent(out), optional :: rc

procedure, public :: deallocate

  • private subroutine deallocate(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(inout) :: this
    integer, intent(out), optional :: rc

procedure(deserialize), public, deferred :: deserialize

  • subroutine deserialize(this, buffer, rc) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(inout) :: this
    integer, intent(in) :: buffer(:)
    integer, intent(out), optional :: rc

procedure, public :: deserialize_base

  • private subroutine deserialize_base(this, buffer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(inout) :: this
    integer, intent(in) :: buffer(:)
    integer, intent(out), optional :: rc

procedure, public :: equal

procedure, public :: fence

  • private subroutine fence(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(inout) :: this
    integer, intent(out), optional :: rc

procedure, public :: fetch_data

  • private subroutine fetch_data(this, offset_address, global_shape, offset_start, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(in), target :: this
    type(c_ptr), intent(in) :: offset_address
    integer, intent(in) :: global_shape(:)
    integer, intent(in), optional :: offset_start(:)
    integer, intent(out), optional :: rc

procedure(get_length), public, deferred :: get_length

  • function get_length(this) result(length) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(in) :: this

    Return Value integer

procedure, public :: get_length_base

  • private function get_length_base(this) result(length)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(in) :: this

    Return Value integer

generic, public :: operator(==) => equal

procedure(serialize), public, deferred :: serialize

  • subroutine serialize(this, buffer, rc) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(in) :: this
    integer, allocatable :: buffer(:)
    integer, intent(out), optional :: rc

procedure, public :: serialize_base

  • private subroutine serialize_base(this, buffer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(in) :: this
    integer, allocatable :: buffer(:)
    integer, intent(out), optional :: rc

Source Code

   type,abstract :: AbstractDataReference
      type (c_ptr) :: base_address = C_NULL_PTR
      integer, allocatable :: shape(:)
      integer :: type_kind
   contains
      procedure :: fetch_data
      procedure(get_length),   deferred :: get_length
      procedure(serialize),   deferred :: serialize
      procedure(deserialize), deferred :: deserialize
      procedure :: get_length_base
      procedure :: serialize_base
      procedure :: deserialize_base
      procedure :: equal
      procedure :: allocate
      procedure :: deallocate
      procedure :: convert_addr
      generic :: operator(==) => equal
      procedure :: fence      
      procedure :: copy_data_to
   end type AbstractDataReference