BaseThread Derived Type

type, public, abstract, extends(MessageVisitor) :: BaseThread


Inherits

type~~basethread~~InheritsGraph type~basethread BaseThread type~abstractsocket AbstractSocket type~basethread->type~abstractsocket connection type~integerrequestmap IntegerRequestMap type~basethread->type~integerrequestmap open_requests type~messagevisitor MessageVisitor type~basethread->type~messagevisitor type~set2~9 set2 type~integerrequestmap->type~set2~9 tree type~surrogatemessagevisitor SurrogateMessageVisitor type~messagevisitor->type~surrogatemessagevisitor type~ivector~8 iVector type~set2~9->type~ivector~8 parents, lefts, rights, heights type~tvector~8 tVector type~set2~9->type~tvector~8 items type~pair~8 pair type~tvector~8->type~pair~8 elements

Inherited by

type~~basethread~~InheritedByGraph type~basethread BaseThread type~clientthread ClientThread type~clientthread->type~basethread type~serverthread ServerThread type~serverthread->type~basethread type~simplesocket SimpleSocket type~simplesocket->type~basethread visitor type~fakeextdata FakeExtData type~fakeextdata->type~clientthread c type~fakeextdata~2 FakeExtData type~fakeextdata~2->type~clientthread c type~fakehistdata FakeHistData type~fakehistdata->type~clientthread i_c, o_c type~clientthreadvector ClientThreadVector type~fakehistdata->type~clientthreadvector ic_vec, oc_vec type~fakehistdata0 FakeHistData0 type~fakehistdata0->type~clientthread i_c, o_c type~fakehistdata0->type~clientthreadvector ic_vec, oc_vec type~fastclientthread FastClientThread type~fastclientthread->type~clientthread type~mockclient MockClient type~mockclient->type~clientthread type~mockclientthread MockClientThread type~mockclientthread->type~clientthread type~mockserverthread MockServerThread type~mockserverthread->type~serverthread type~v_wrapper~12 v_Wrapper type~v_wrapper~12->type~clientthread item type~v_wrapper~13 v_Wrapper type~v_wrapper~13->type~serverthread item type~clientthreadvector->type~v_wrapper~12 elements type~clientthreadvectoriterator ClientThreadVectorIterator type~clientthreadvectoriterator->type~v_wrapper~12 elements type~clientthreadvectorriterator ClientThreadVectorRIterator type~clientthreadvectorriterator->type~v_wrapper~12 elements type~serverthreadvector ServerThreadVector type~serverthreadvector->type~v_wrapper~13 elements type~serverthreadvectoriterator ServerThreadVectorIterator type~serverthreadvectoriterator->type~v_wrapper~13 elements type~serverthreadvectorriterator ServerThreadVectorRIterator type~serverthreadvectorriterator->type~v_wrapper~13 elements type~baseserver BaseServer type~baseserver->type~serverthreadvector threads type~clientmanager ClientManager type~clientmanager->type~clientthreadvector clients

Type-Bound Procedures

procedure, public :: clear_RequestHandle

  • private subroutine clear_RequestHandle(this, rc)

    Arguments

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

procedure, public :: erase_RequestHandle

  • private subroutine erase_RequestHandle(this, request_id, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseThread), intent(inout), target :: this
    integer, intent(in) :: request_id
    integer, intent(out), optional :: rc

procedure, public :: get_RequestHandle

  • private function get_RequestHandle(this, request_id, rc) result(rh_ptr)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseThread), intent(in), target :: this
    integer, intent(in) :: request_id
    integer, intent(out), optional :: rc

    Return Value class(AbstractRequestHandle), pointer

procedure, public :: get_connection

  • private function get_connection(this, rc) result(connection)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseThread), intent(in), target :: this
    integer, intent(out), optional :: rc

    Return Value class(AbstractSocket), pointer

procedure, public :: handle

  • private recursive subroutine handle(this, message, rc)

    Arguments

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

procedure, public :: handle_AddExtCollection

  • private subroutine handle_AddExtCollection(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(AddExtCollectionMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_AddHistCollection

  • private subroutine handle_AddHistCollection(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(AddHistCollectionMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_CollectivePrefetchData

  • private subroutine handle_CollectivePrefetchData(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(CollectivePrefetchDataMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_CollectiveStageData

  • private subroutine handle_CollectiveStageData(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(CollectiveStageDataMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_Done

  • private subroutine handle_Done(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(DoneMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_Done_collective_prefetch

  • private subroutine handle_Done_collective_prefetch(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(CollectivePrefetchDoneMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_Done_collective_stage

  • private subroutine handle_Done_collective_stage(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(CollectiveStageDoneMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_Done_prefetch

  • private subroutine handle_Done_prefetch(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(PrefetchDoneMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_Done_stage

  • private subroutine handle_Done_stage(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(StageDoneMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_HandShake

  • private subroutine handle_HandShake(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(HandShakeMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_Id

  • private subroutine handle_Id(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout) :: this
    type(IDMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_ModifyMetadata

  • private subroutine handle_ModifyMetadata(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(ModifyMetadataMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_PrefetchData

  • private subroutine handle_PrefetchData(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(PrefetchDataMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_ReplaceMetadata

  • private subroutine handle_ReplaceMetadata(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(ReplaceMetadataMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_StageData

  • private subroutine handle_StageData(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(StageDataMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: handle_Terminate

  • private subroutine handle_Terminate(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout) :: this
    type(TerminateMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_Done

  • private subroutine handle_Done(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(DoneMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_Done_prefetch

  • private subroutine handle_Done_prefetch(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(PrefetchDoneMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_Done_collective_prefetch

  • private subroutine handle_Done_collective_prefetch(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(CollectivePrefetchDoneMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_Done_stage

  • private subroutine handle_Done_stage(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(StageDoneMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_Done_collective_stage

  • private subroutine handle_Done_collective_stage(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(CollectiveStageDoneMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_AddExtCollection

  • private subroutine handle_AddExtCollection(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(AddExtCollectionMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_AddHistCollection

  • private subroutine handle_AddHistCollection(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(AddHistCollectionMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_Id

  • private subroutine handle_Id(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout) :: this
    type(IDMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_PrefetchData

  • private subroutine handle_PrefetchData(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(PrefetchDataMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_CollectivePrefetchData

  • private subroutine handle_CollectivePrefetchData(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(CollectivePrefetchDataMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_StageData

  • private subroutine handle_StageData(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(StageDataMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_CollectiveStageData

  • private subroutine handle_CollectiveStageData(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(CollectiveStageDataMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_Terminate

  • private subroutine handle_Terminate(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout) :: this
    type(TerminateMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_ModifyMetadata

  • private subroutine handle_ModifyMetadata(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(ModifyMetadataMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_ReplaceMetadata

  • private subroutine handle_ReplaceMetadata(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(ReplaceMetadataMessage), intent(in) :: message
    integer, intent(out), optional :: rc

generic, public :: handle_cmd => handle_HandShake

  • private subroutine handle_HandShake(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(HandShakeMessage), intent(in) :: message
    integer, intent(out), optional :: rc

procedure, public :: insert_RequestHandle

  • private subroutine insert_RequestHandle(this, request_id, handle, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseThread), intent(inout), target :: this
    integer, intent(in) :: request_id
    class(AbstractRequestHandle), intent(in) :: handle
    integer, intent(out), optional :: rc

procedure, public :: isEmpty_RequestHandle

  • private function isEmpty_RequestHandle(this, rc) result(empty)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseThread), intent(in), target :: this
    integer, intent(out), optional :: rc

    Return Value logical

procedure, public :: set_connection

  • private subroutine set_connection(this, connection, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseThread), intent(inout), target :: this
    class(AbstractSocket), intent(in) :: connection
    integer, intent(out), optional :: rc

Source Code

   type, extends(MessageVisitor),abstract :: BaseThread
      private
      class (AbstractSocket), allocatable :: connection
      type (IntegerRequestMap) :: open_requests
   contains
   
      procedure :: get_connection
      procedure :: set_connection

      procedure :: erase_RequestHandle
      procedure :: clear_RequestHandle
      procedure :: get_RequestHandle
      procedure :: insert_RequestHandle
      procedure :: isEmpty_RequestHandle
   end type BaseThread