ClientThread Derived Type

type, public, extends(BaseThread) :: ClientThread


Inherits

type~~clientthread~~InheritsGraph type~clientthread ClientThread type~basethread BaseThread type~clientthread->type~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~map_set~13 map_Set type~integerrequestmap->type~map_set~13 tree type~surrogatemessagevisitor SurrogateMessageVisitor type~messagevisitor->type~surrogatemessagevisitor type~map_s_basenode~13 map_s_BaseNode type~map_set~13->type~map_s_basenode~13 root

Inherited by

type~~clientthread~~InheritedByGraph type~clientthread ClientThread 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~v_wrapper~11 v_Wrapper type~v_wrapper~11->type~clientthread item type~clientthreadvector->type~v_wrapper~11 elements type~clientthreadvectoriterator ClientThreadVectorIterator type~clientthreadvectoriterator->type~v_wrapper~11 elements type~clientthreadvectorriterator ClientThreadVectorRIterator type~clientthreadvectorriterator->type~v_wrapper~11 elements type~clientmanager ClientManager type~clientmanager->type~clientthreadvector clients

Constructor

public interface ClientThread

  • private function new_ClientThread(sckt) result(c)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractSocket), intent(in), optional :: sckt

    Return Value type(ClientThread), target


Type-Bound Procedures

generic, public :: add_data_collection => add_read_data_collection, add_write_data_collection

  • private function add_read_data_collection(this, file_template, rc) result(collection_id)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout) :: this
    character(len=*), intent(in) :: file_template
    integer, intent(out), optional :: rc

    Return Value integer

  • private function add_write_data_collection(this, file_metadata, unusable, mode, rc) result(collection_id)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout), target :: this
    type(FileMetadata), intent(in) :: file_metadata
    class(KeywordEnforcer), intent(out), optional :: unusable
    integer, intent(in), optional :: mode
    integer, intent(out), optional :: rc

    Return Value integer

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 :: collective_prefetch_data

  • private function collective_prefetch_data(this, collection_id, file_name, var_name, data_reference, unusable, start, global_start, global_count, rc) result(request_id)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout) :: this
    integer, intent(in) :: collection_id
    character(len=*), intent(in) :: file_name
    character(len=*), intent(in) :: var_name
    class(AbstractDataReference), intent(in) :: data_reference
    class(KeywordEnforcer), intent(out), optional :: unusable
    integer, intent(in), optional :: start(:)
    integer, intent(in), optional :: global_start(:)
    integer, intent(in), optional :: global_count(:)
    integer, intent(out), optional :: rc

    Return Value integer

procedure, public :: collective_stage_data

  • private function collective_stage_data(this, collection_id, file_name, var_name, data_reference, unusable, start, global_start, global_count, rc) result(request_id)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout), target :: this
    integer, intent(in) :: collection_id
    character(len=*), intent(in) :: file_name
    character(len=*), intent(in) :: var_name
    class(AbstractDataReference), intent(in) :: data_reference
    class(KeywordEnforcer), intent(out), optional :: unusable
    integer, intent(in), optional :: start(:)
    integer, intent(in), optional :: global_start(:)
    integer, intent(in), optional :: global_count(:)
    integer, intent(out), optional :: rc

    Return Value integer

procedure, public :: done

  • private subroutine done(this, rc)

    Arguments

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

procedure, public :: done_collective_prefetch

  • private subroutine done_collective_prefetch(this, rc)

    Arguments

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

procedure, public :: done_collective_stage

  • private subroutine done_collective_stage(this, rc)

    Arguments

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

procedure, public :: done_prefetch

  • private subroutine done_prefetch(this, rc)

    Arguments

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

procedure, public :: done_stage

  • private subroutine done_stage(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout) :: 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 :: get_unique_collective_request_id

  • private function get_unique_collective_request_id(this) result(request_id)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout) :: this

    Return Value integer

procedure, public :: get_unique_request_id

  • private function get_unique_request_id(this) result(request_id)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout) :: this

    Return Value integer

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_AddReadDataCollection

  • private subroutine handle_AddReadDataCollection(this, message, rc)

    Arguments

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

procedure, public :: handle_AddWriteDataCollection

  • private subroutine handle_AddWriteDataCollection(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(AddWriteDataCollectionMessage), 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(ClientThread), 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_AddReadDataCollection

  • private subroutine handle_AddReadDataCollection(this, message, rc)

    Arguments

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

generic, public :: handle_cmd => handle_AddWriteDataCollection

  • private subroutine handle_AddWriteDataCollection(this, message, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MessageVisitor), intent(inout), target :: this
    type(AddWriteDataCollectionMessage), 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 :: modify_metadata

  • private subroutine modify_metadata(this, collection_id, unusable, var_map, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout) :: this
    integer, intent(in) :: collection_id
    class(KeywordEnforcer), intent(out), optional :: unusable
    type(StringVariableMap), intent(in), optional :: var_map
    integer, intent(out), optional :: rc

procedure, public :: post_wait_all

  • private subroutine post_wait_all(this)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout), target :: this

procedure, public :: prefetch_data

  • private function prefetch_data(this, collection_id, file_name, var_name, data_reference, unusable, start, rc) result(request_id)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout) :: this
    integer, intent(in) :: collection_id
    character(len=*), intent(in) :: file_name
    character(len=*), intent(in) :: var_name
    class(AbstractDataReference), intent(in) :: data_reference
    class(KeywordEnforcer), intent(out), optional :: unusable
    integer, intent(in), optional :: start(:)
    integer, intent(out), optional :: rc

    Return Value integer

procedure, public :: replace_metadata

  • private subroutine replace_metadata(this, collection_id, fmd, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout) :: this
    integer, intent(in) :: collection_id
    type(FileMetadata), intent(in) :: fmd
    integer, intent(out), optional :: rc

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

procedure, public :: shake_hand

  • private subroutine shake_hand(this, rc)

    Arguments

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

procedure, public :: stage_data

  • private function stage_data(this, collection_id, file_name, var_name, data_reference, unusable, start, rc) result(request_id)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout) :: this
    integer, intent(in) :: collection_id
    character(len=*), intent(in) :: file_name
    character(len=*), intent(in) :: var_name
    class(AbstractDataReference), intent(in) :: data_reference
    class(KeywordEnforcer), intent(out), optional :: unusable
    integer, intent(in), optional :: start(:)
    integer, intent(out), optional :: rc

    Return Value integer

procedure, public :: stage_nondistributed_data

  • private function stage_nondistributed_data(this, collection_id, file_name, var_name, data_reference, rc) result(request_id)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout) :: this
    integer, intent(in) :: collection_id
    character(len=*), intent(in) :: file_name
    character(len=*), intent(in) :: var_name
    class(AbstractDataReference), intent(in) :: data_reference
    integer, intent(out), optional :: rc

    Return Value integer

procedure, public :: terminate

  • private subroutine terminate(this, rc)

    Arguments

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

procedure, public :: wait

  • private subroutine wait(this, request_id)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout), target :: this
    integer, intent(in) :: request_id

procedure, public :: wait_all

  • private subroutine wait_all(this)

    Arguments

    Type IntentOptional Attributes Name
    class(ClientThread), intent(inout), target :: this

Source Code

   type, extends(BaseThread) :: ClientThread
      private

      ! scratch pad for return values from application level interfaces
      integer :: collection_id      = -1
      integer :: request_counter    = MIN_ID
      integer :: collective_counter = COLLECTIVE_MIN_ID

   contains
      procedure, private :: add_read_data_collection
      procedure, private :: add_write_data_collection
      generic :: add_data_collection => add_read_data_collection, add_write_data_collection
      procedure :: modify_metadata
      procedure :: replace_metadata
      procedure :: prefetch_data
      procedure :: stage_data
      procedure :: collective_prefetch_data
      procedure :: collective_stage_data
      procedure :: stage_nondistributed_data
      procedure :: shake_hand

      procedure :: done
      procedure :: done_prefetch
      procedure :: done_collective_prefetch
      procedure :: done_stage
      procedure :: done_collective_stage
      procedure :: wait
      procedure :: wait_all
      procedure :: post_wait_all
      procedure :: terminate

      procedure :: handle_Id

      procedure :: get_unique_request_id
      procedure :: get_unique_collective_request_id
   end type ClientThread