MpiSocket Derived Type

type, public, extends(AbstractSocket) :: MpiSocket


Inherits

type~~mpisocket~~InheritsGraph type~mpisocket MpiSocket type~abstractsocket AbstractSocket type~mpisocket->type~abstractsocket type~protocolparser ProtocolParser type~mpisocket->type~protocolparser parser type~integermessagemap IntegerMessageMap type~protocolparser->type~integermessagemap prototypes type~set2~5 set2 type~integermessagemap->type~set2~5 tree type~ivector~4 iVector type~set2~5->type~ivector~4 parents, lefts, rights, heights type~tvector~4 tVector type~set2~5->type~tvector~4 items

Constructor

public interface MpiSocket

  • private function new_MpiSocket(comm, remote_rank, parser, rc) result(s)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: comm
    integer, intent(in) :: remote_rank
    type(ProtocolParser), intent(in), target :: parser
    integer, intent(out), optional :: rc

    Return Value type(MpiSocket)


Type-Bound Procedures

procedure, public :: get

  • private function get(this, request_id, local_reference, rc) result(handle)

    Arguments

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

    Return Value class(AbstractRequestHandle), allocatable

procedure, public :: put

  • private function put(this, request_id, local_reference, rc) result(handle)

    Arguments

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

    Return Value class(AbstractRequestHandle), allocatable

procedure, public :: receive

  • private function receive(this, rc) result(message)

    Arguments

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

    Return Value class(AbstractMessage), pointer

procedure, public :: send

  • private subroutine send(this, message, rc)

    Arguments

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

procedure, public :: to_string

  • private function to_string(this) result(string)

    Arguments

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

    Return Value character(len=:), allocatable

Source Code

   type, extends(AbstractSocket) :: MpiSocket
      private
      type (ProtocolParser), pointer :: parser
      integer :: world_comm
      integer :: pair_comm
      integer :: world_remote_rank
      integer :: world_local_rank
      integer :: pair_local_rank
      integer :: pair_remote_rank
   contains
      procedure :: receive
      procedure :: send
      procedure :: put
      procedure :: get
      procedure :: to_string
   end type MpiSocket