|
- module CIntegerArrayEventHandler
- use CIActionReference
- implicit none
- public
-
- type :: IntegerArrayEventHandler
- procedure(ActionIntegerArray), pointer, nopass :: Delegate => null()
- contains
- procedure :: AssignTo => AssignTo
- procedure :: MakeNull => MakeNull
- procedure :: IsNull => IsNull
- procedure :: Run => Run
- end type IntegerArrayEventHandler
-
- contains
-
- subroutine AssignTo(this, proc)
- implicit none
- class(IntegerArrayEventHandler), intent(inout) :: this
- procedure (ActionIntegerArray), pointer, intent(in) :: proc
- this%Delegate => proc
- end subroutine
-
- subroutine MakeNull(this)
- implicit none
- class(IntegerArrayEventHandler), intent(inout) :: this
- this%Delegate => null()
- end subroutine
-
- logical function IsNull(this)
- implicit none
- class(IntegerArrayEventHandler), intent(in) :: this
- IsNull = .not.associated(this%Delegate)
- end function
-
- subroutine Run(this, arg)
- implicit none
- class(IntegerArrayEventHandler), intent(inout) :: this
- integer, allocatable, intent (in) :: arg(:)
- !if(.not.this%IsNull())
- call this%Delegate(arg)
- end subroutine
-
- end module CIntegerArrayEventHandler
|