AbstractMessage Derived Type

type, public, abstract :: AbstractMessage


Inherited by

type~~abstractmessage~~InheritedByGraph type~abstractmessage AbstractMessage type~abstractdatamessage AbstractDataMessage type~abstractdatamessage->type~abstractmessage type~addextcollectionmessage AddExtCollectionMessage type~addextcollectionmessage->type~abstractmessage type~addhistcollectionmessage AddHistCollectionMessage type~addhistcollectionmessage->type~abstractmessage type~collectiveprefetchdonemessage CollectivePrefetchDoneMessage type~collectiveprefetchdonemessage->type~abstractmessage type~collectivestagedonemessage CollectiveStageDoneMessage type~collectivestagedonemessage->type~abstractmessage type~donemessage DoneMessage type~donemessage->type~abstractmessage type~dummymessage DummyMessage type~dummymessage->type~abstractmessage type~forwarddatamessage ForwardDataMessage type~forwarddatamessage->type~abstractmessage type~handshakemessage HandShakeMessage type~handshakemessage->type~abstractmessage type~idmessage IDMessage type~idmessage->type~abstractmessage type~modifymetadatamessage ModifyMetadataMessage type~modifymetadatamessage->type~abstractmessage type~pair~4 pair type~pair~4->type~abstractmessage value type~prefetchdonemessage PrefetchDoneMessage type~prefetchdonemessage->type~abstractmessage type~replacemetadatamessage ReplaceMetadataMessage type~replacemetadatamessage->type~abstractmessage type~simplesocket SimpleSocket type~simplesocket->type~abstractmessage msg type~stagedonemessage StageDoneMessage type~stagedonemessage->type~abstractmessage type~terminatemessage TerminateMessage type~terminatemessage->type~abstractmessage type~v_wrapper~7 v_Wrapper type~v_wrapper~7->type~abstractmessage item type~abstractcollectivedatamessage AbstractCollectiveDataMessage type~abstractcollectivedatamessage->type~abstractdatamessage type~messagevector MessageVector type~messagevector->type~v_wrapper~7 elements type~messagevectoriterator MessageVectorIterator type~messagevectoriterator->type~v_wrapper~7 elements type~messagevectorriterator MessageVectorRIterator type~messagevectorriterator->type~v_wrapper~7 elements type~prefetchdatamessage PrefetchDataMessage type~prefetchdatamessage->type~abstractdatamessage type~stagedatamessage StageDataMessage type~stagedatamessage->type~abstractdatamessage type~tvector~4 tVector type~tvector~4->type~pair~4 elements type~collectiveprefetchdatamessage CollectivePrefetchDataMessage type~collectiveprefetchdatamessage->type~abstractcollectivedatamessage type~collectivestagedatamessage CollectiveStageDataMessage type~collectivestagedatamessage->type~abstractcollectivedatamessage type~forwarddataandmessage ForwardDataAndMessage type~forwarddataandmessage->type~messagevector msg_vec type~mocksocket MockSocket type~mocksocket->type~messagevector messages type~serverthread ServerThread type~serverthread->type~messagevector request_backlog type~set2~5 set2 type~set2~5->type~tvector~4 items

Type-Bound Procedures

procedure(deserialize), public, deferred :: deserialize

  • subroutine deserialize(this, buffer, rc) Prototype

    Arguments

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

procedure, public :: dispatch

  • private recursive subroutine dispatch(this, visitor, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractMessage), intent(in) :: this
    class(SurrogateMessageVisitor), intent(inout), target :: visitor
    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(AbstractMessage), intent(in) :: this

    Return Value integer

procedure(get_type_id), public, deferred, nopass :: get_type_id

  • function get_type_id() result(type_id) Prototype

    Arguments

    None

    Return Value integer

procedure(serialize), public, deferred :: serialize

  • subroutine serialize(this, buffer, rc) Prototype

    Arguments

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

Source Code

   type, abstract :: AbstractMessage
   contains
      procedure (get_type_id), deferred, nopass :: get_type_id
      procedure (get_length),  deferred :: get_length
      procedure (serialize),   deferred :: serialize
      procedure (deserialize), deferred :: deserialize
      procedure :: dispatch

   end type AbstractMessage