SignalCollection Derived Type

type, public, extends(Object) :: SignalCollection

Object storing named signals


Components

Type Visibility Attributes Name Initial
logical, public :: userDefined = .false.

True only if user explicitly sets it to true

type(SignalContainer), private, allocatable, dimension(:) :: signals
type(StringArray), private, allocatable, dimension(:) :: signalNames

Type-Bound Procedures

procedure, public :: isDefined => isDefinedObject

  • interface

    private pure module function isDefinedObject(this) result(defined)

    Getter for userDefined

    Arguments

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

    Return Value logical

procedure, public :: makeDefined => makeDefinedObject

  • interface

    private pure module subroutine makeDefinedObject(this)

    Set userDefined to .true.

    Arguments

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

procedure, public :: makeUndefined => makeUndefinedObject

  • interface

    private pure module subroutine makeUndefinedObject(this)

    Set userDefined to .false.

    Arguments

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

procedure, public :: addSignal

  • interface

    private module subroutine addSignal(this, sig, name)

    Add named signal to collection

    Arguments

    Type IntentOptional Attributes Name
    class(SignalCollection), intent(inout) :: this
    class(TimeSignal), intent(in) :: sig
    character(len=*), intent(in) :: name

procedure, public :: isSignalRegistered

  • interface

    private pure module function isSignalRegistered(this, name) result(reg)

    Check whether signal with given name is registered in the collection

    Arguments

    Type IntentOptional Attributes Name
    class(SignalCollection), intent(in) :: this
    character(len=*), intent(in) :: name

    Return Value logical

procedure, public :: copySignal

  • interface

    private pure module subroutine copySignal(this, name, sig)

    Copy signal with given name into passed sig object, overwriting any existing allocation

    Arguments

    Type IntentOptional Attributes Name
    class(SignalCollection), intent(in) :: this
    character(len=*), intent(in) :: name
    class(TimeSignal), intent(inout), allocatable :: sig

procedure, public :: init => initSignalCollection

  • interface

    private pure module subroutine initSignalCollection(this)

    SignalCollection object initialization

    Arguments

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