Connection.F90 Source File


Files dependent on this one

sourcefile~~connection.f90~~AfferentGraph sourcefile~connection.f90 Connection.F90 sourcefile~componentspec.f90 ComponentSpec.F90 sourcefile~componentspec.f90->sourcefile~connection.f90 sourcefile~connectionvector.f90 ConnectionVector.F90 sourcefile~componentspec.f90->sourcefile~connectionvector.f90 sourcefile~componentspecparser.f90 ComponentSpecParser.F90 sourcefile~componentspecparser.f90->sourcefile~connection.f90 sourcefile~componentspecparser.f90->sourcefile~componentspec.f90 sourcefile~componentspecparser.f90->sourcefile~connectionvector.f90 sourcefile~matchconnection.f90 MatchConnection.F90 sourcefile~componentspecparser.f90->sourcefile~matchconnection.f90 sourcefile~reexportconnection.f90 ReexportConnection.F90 sourcefile~componentspecparser.f90->sourcefile~reexportconnection.f90 sourcefile~simpleconnection.f90 SimpleConnection.F90 sourcefile~componentspecparser.f90->sourcefile~simpleconnection.f90 sourcefile~connect_all.f90 connect_all.F90 sourcefile~connect_all.f90->sourcefile~connection.f90 sourcefile~connect_all.f90->sourcefile~matchconnection.f90 sourcefile~connectionvector.f90->sourcefile~connection.f90 sourcefile~initialize_advertise.f90 initialize_advertise.F90 sourcefile~initialize_advertise.f90->sourcefile~connection.f90 sourcefile~initialize_advertise.f90->sourcefile~connectionvector.f90 sourcefile~initialize_modify_advertised.f90 initialize_modify_advertised.F90 sourcefile~initialize_modify_advertised.f90->sourcefile~connection.f90 sourcefile~initialize_modify_advertised.f90->sourcefile~connectionvector.f90 sourcefile~matchconnection.f90->sourcefile~connection.f90 sourcefile~matchconnection.f90->sourcefile~simpleconnection.f90 sourcefile~reexportconnection.f90->sourcefile~connection.f90 sourcefile~simpleconnection.f90->sourcefile~connection.f90 sourcefile~add_child_by_name.f90 add_child_by_name.F90 sourcefile~add_child_by_name.f90->sourcefile~componentspecparser.f90 sourcefile~mapl_generic.f90~2 MAPL_Generic.F90 sourcefile~mapl_generic.f90~2->sourcefile~componentspec.f90 sourcefile~outermetacomponent.f90 OuterMetaComponent.F90 sourcefile~outermetacomponent.f90->sourcefile~componentspec.f90 sourcefile~parse_child.f90 parse_child.F90 sourcefile~parse_child.f90->sourcefile~componentspecparser.f90 sourcefile~parse_children.f90 parse_children.F90 sourcefile~parse_children.f90->sourcefile~componentspecparser.f90 sourcefile~parse_component_spec.f90 parse_component_spec.F90 sourcefile~parse_component_spec.f90->sourcefile~componentspecparser.f90 sourcefile~parse_connections.f90 parse_connections.F90 sourcefile~parse_connections.f90->sourcefile~componentspecparser.f90 sourcefile~parse_geometry_spec.f90 parse_geometry_spec.F90 sourcefile~parse_geometry_spec.f90->sourcefile~componentspecparser.f90 sourcefile~parse_setservices.f90 parse_setservices.F90 sourcefile~parse_setservices.f90->sourcefile~componentspecparser.f90 sourcefile~parse_timestep.f90 parse_timestep.F90 sourcefile~parse_timestep.f90->sourcefile~componentspecparser.f90 sourcefile~parse_var_specs.f90 parse_var_specs.F90 sourcefile~parse_var_specs.f90->sourcefile~componentspecparser.f90 sourcefile~protoextdatagc.f90 ProtoExtDataGC.F90 sourcefile~protoextdatagc.f90->sourcefile~simpleconnection.f90 sourcefile~setservices.f90 SetServices.F90 sourcefile~setservices.f90->sourcefile~componentspecparser.f90 sourcefile~test_componentspecparser.pf Test_ComponentSpecParser.pf sourcefile~test_componentspecparser.pf->sourcefile~componentspecparser.f90 sourcefile~test_stateregistry.pf Test_StateRegistry.pf sourcefile~test_stateregistry.pf->sourcefile~simpleconnection.f90

Source Code

module mapl3g_Connection
   implicit none
   private

   public :: Connection


   type, abstract :: Connection
   contains
      procedure(I_get), deferred :: get_source
      procedure(I_get), deferred :: get_destination
      procedure(I_connect), deferred :: activate
      procedure(I_connect), deferred :: connect
   end type Connection


   abstract interface

      function I_get(this) result(source)
         use mapl3g_ConnectionPt
         import Connection
         type(ConnectionPt) :: source
         class(Connection), intent(in) :: this
      end function I_get

      subroutine I_connect(this, registry, rc)
         use mapl3g_StateRegistry
         import Connection
         class(Connection), intent(in) :: this
         type(StateRegistry), target, intent(inout) :: registry
         integer, optional, intent(out) :: rc
      end subroutine I_connect

   end interface


end module mapl3g_Connection