BaseServer Derived Type

type, public, abstract, extends(AbstractServer) :: BaseServer


Inherits

type~~baseserver~~InheritsGraph type~baseserver BaseServer type~abstractserver AbstractServer type~baseserver->type~abstractserver type~serverthreadvector ServerThreadVector type~baseserver->type~serverthreadvector threads StringInteger64Map StringInteger64Map type~abstractserver->StringInteger64Map prefetch_offset, stage_offset type~abstractdatareferencevector AbstractDataReferenceVector type~abstractserver->type~abstractdatareferencevector dataRefPtrs type~v_wrapper~12 v_Wrapper type~serverthreadvector->type~v_wrapper~12 elements type~v_wrapper~9 v_Wrapper type~abstractdatareferencevector->type~v_wrapper~9 elements type~serverthread ServerThread type~v_wrapper~12->type~serverthread item type~serverthread->type~abstractserver containing_server IntegerVector IntegerVector type~serverthread->IntegerVector sub_array_types type~basethread BaseThread type~serverthread->type~basethread type~extcollectionvector ExtCollectionVector type~serverthread->type~extcollectionvector ext_collections type~historycollectionvector HistoryCollectionVector type~serverthread->type~historycollectionvector hist_collections type~messagevector MessageVector type~serverthread->type~messagevector request_backlog type~abstractdatareference AbstractDataReference type~v_wrapper~9->type~abstractdatareference item

Inherited by

type~~baseserver~~InheritedByGraph type~baseserver BaseServer type~mockserver MockServer type~mockserver->type~baseserver type~mpiserver MpiServer type~mpiserver->type~baseserver type~multicommserver MultiCommServer type~multicommserver->type~baseserver type~multigroupserver MultiGroupServer type~multigroupserver->type~baseserver type~multilayerserver MultiLayerServer type~multilayerserver->type~baseserver type~openmpserver OpenMPServer type~openmpserver->type~baseserver type~portinfo PortInfo type~portinfo->type~baseserver server_ptr type~servermanager ServerManager type~servermanager->type~baseserver o_server type~servermanager->type~mpiserver i_server type~directoryservice DirectoryService type~servermanager->type~directoryservice directory_service type~directoryservice->type~portinfo local_ports type~extdatadriver ExtDataDriver type~extdatadriver->type~servermanager cap_server type~mapl_cap MAPL_Cap type~mapl_cap->type~servermanager cap_server type~maplframework MaplFramework type~maplframework->type~mpiserver o_server, i_server type~maplframework->type~directoryservice directory_service

Components

Type Visibility Attributes Name Initial
integer, public :: InNode_Comm
integer, public :: InNode_Rank
integer, public :: InNode_npes
integer, public :: NodeRoot_Comm
integer, public :: Node_Num
integer, public :: Node_Rank
integer, public, allocatable :: Node_Ranks(:)
integer, public :: comm
integer, public :: npes
integer, public :: num_clients = 0
integer, public :: rank
integer, public :: status
logical, public :: all_backlog_is_empty = .true.
logical, public, allocatable :: serverthread_done_msgs(:)
logical, public :: terminate
type(AbstractDataReferenceVector), public :: dataRefPtrs
type(ServerThreadVector), public :: threads
type(StringInteger64Map), public :: prefetch_offset
type(StringInteger64Map), public :: stage_offset

Type-Bound Procedures

procedure, public :: I_am_NodeRoot

  • private function I_am_NodeRoot(this) result(yes)

    Arguments

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

    Return Value logical

procedure, public :: I_am_ServerRoot

  • private function I_am_ServerRoot(this) result(yes)

    Arguments

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

    Return Value logical

procedure, public :: add_DataReference

  • private subroutine add_DataReference(this, DataRef)

    Arguments

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

procedure, public :: add_connection

  • private subroutine add_connection(this, socket)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseServer), intent(inout), target :: this
    class(AbstractSocket), intent(in), target :: socket

procedure, public :: am_I_reading_PE

  • private function am_I_reading_PE(this, id) result(yes)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractServer), intent(in) :: this
    integer, intent(in) :: id

    Return Value logical

procedure, public :: clean_up

  • private subroutine clean_up(this, rc)

    Arguments

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

procedure, public :: clear_DataReference

  • private subroutine clear_DataReference(this)

    Arguments

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

procedure, public :: clear_RequestHandle

  • private subroutine clear_RequestHandle(this)

    Arguments

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

procedure, public :: create_remote_win

  • private subroutine create_remote_win(this, rc)

    Arguments

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

procedure, public :: distribute_task

  • private subroutine distribute_task(this, id, node_rank, innode_rank)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractServer), intent(in) :: this
    integer, intent(in) :: id
    integer, intent(out) :: node_rank
    integer, intent(out) :: innode_rank

procedure, public :: get_AllBacklogIsEmpty

  • private function get_AllBacklogIsEmpty(this) result(status)

    Arguments

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

    Return Value logical

procedure, public :: get_DataFromMem

  • private subroutine get_DataFromMem(this, multi, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseServer), intent(inout), target :: this
    logical, intent(in) :: multi
    integer, intent(out), optional :: rc

procedure, public :: get_DataReference

  • private function get_DataReference(this, ith) result(DataRef)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractServer), intent(in), target :: this
    integer, intent(in), optional :: ith

    Return Value class(AbstractDataReference), pointer

procedure, public :: get_communicator

  • private function get_communicator(this) result(communicator)

    Arguments

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

    Return Value integer

procedure, public :: get_dmessage

  • private function get_dmessage(this, rc) result(dmessage)

    Arguments

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

    Return Value class(AbstractMessage), pointer

procedure, public :: get_status

  • private function get_status(this) result(status)

    Arguments

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

    Return Value integer

procedure, public :: get_writing_PE

  • private function get_writing_PE(this, id) result(rank)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractServer), intent(in) :: this
    integer, intent(in) :: id

    Return Value integer

procedure, public :: init

  • private subroutine init(this, comm, port_name, profiler_name, with_profiler, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractServer), intent(inout) :: this
    integer, intent(in) :: comm
    character(len=*), intent(in) :: port_name
    character(len=*), intent(in), optional :: profiler_name
    logical, intent(in), optional :: with_profiler
    integer, intent(out), optional :: rc

procedure, public :: put_DataToFile

  • private subroutine put_DataToFile(this, rc)

    Arguments

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

procedure, public :: receive_output_data

  • private subroutine receive_output_data(this, rc)

    Arguments

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

procedure, public :: report_profile

  • private subroutine report_profile(this, RC)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractServer), intent(inout) :: this
    integer, intent(out), optional :: RC

procedure, public :: set_AllBacklogIsEmpty

  • private subroutine set_AllBacklogIsEmpty(this, status)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractServer), intent(inout) :: this
    logical :: status

procedure, public :: set_collective_request

  • private subroutine set_collective_request(this, request, have_done)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseServer), intent(inout), target :: this
    logical, intent(in) :: request
    logical, intent(in) :: have_done

procedure, public :: set_status

  • private subroutine set_status(this, status)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractServer), intent(inout) :: this
    integer, intent(in) :: status

procedure(start), public, deferred :: start

  • subroutine start(this, rc) Prototype

    Arguments

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

procedure, public :: update_status

  • private subroutine update_status(this, rc)

    Arguments

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

Source Code

   type,extends (AbstractServer), abstract :: BaseServer
      type (ServerThreadVector) :: threads
   contains

      procedure :: receive_output_data
      procedure :: put_DataToFile
      procedure :: get_DataFromMem
      procedure :: add_connection
      procedure :: clear_RequestHandle
      procedure :: get_dmessage ! get done or dummy message
      procedure :: set_collective_request !
      procedure :: create_remote_win
   end type BaseServer