feature_manager_t Derived Type

type, public :: feature_manager_t

Container for multiple feature instances and their callback fan-out.


Inherits

type~~feature_manager_t~~InheritsGraph type~feature_manager_t feature_manager_t type~feature_box_t feature_box_t type~feature_manager_t->type~feature_box_t feat type~watch_feature_t watch_feature_t type~feature_box_t->type~watch_feature_t p

Inherited by

type~~feature_manager_t~~InheritedByGraph type~feature_manager_t feature_manager_t type~watcher_t watcher_t type~watcher_t->type~feature_manager_t fm

Components

Type Visibility Attributes Name Initial
type(feature_box_t), public, allocatable :: feat(:)

Type-Bound Procedures

procedure, public :: add => fm_add

  • private subroutine fm_add(self, f)

    Add a feature instance to the manager, transferring ownership.

    Read more…

    Arguments

    Type IntentOptional Attributes Name
    class(feature_manager_t), intent(inout) :: self
    class(watch_feature_t), intent(inout), allocatable :: f

procedure, public :: init_all

  • private subroutine init_all(self, cfg)

    Call init(cfg) on all registered features.

    Arguments

    Type IntentOptional Attributes Name
    class(feature_manager_t), intent(inout) :: self
    type(watch_config_t), intent(in) :: cfg

procedure, public :: on_after_run_all

  • private subroutine on_after_run_all(self, exitstat, seconds)

    Call on_after_run(exitstat, seconds) on all registered features.

    Arguments

    Type IntentOptional Attributes Name
    class(feature_manager_t), intent(inout) :: self
    integer, intent(in) :: exitstat
    real, intent(in) :: seconds

procedure, public :: on_before_run_all

  • private subroutine on_before_run_all(self, cmd)

    Call on_before_run(cmd) on all registered features.

    Arguments

    Type IntentOptional Attributes Name
    class(feature_manager_t), intent(inout) :: self
    character(len=:), intent(inout), allocatable :: cmd

procedure, public :: on_change_detected_all

  • private subroutine on_change_detected_all(self, changed)

    Call on_change_detected(changed) on all registered features.

    Arguments

    Type IntentOptional Attributes Name
    class(feature_manager_t), intent(inout) :: self
    type(string_t), intent(in), allocatable :: changed(:)

procedure, public :: on_manifest_changed_all

  • private subroutine on_manifest_changed_all(self, old_key, new_key)

    Call on_manifest_changed(old_key, new_key) on all registered features.

    Arguments

    Type IntentOptional Attributes Name
    class(feature_manager_t), intent(inout) :: self
    integer(kind=int64), intent(in) :: old_key
    integer(kind=int64), intent(in) :: new_key

procedure, public :: on_start_all

  • private subroutine on_start_all(self)

    Call on_start() on all registered features.

    Arguments

    Type IntentOptional Attributes Name
    class(feature_manager_t), intent(inout) :: self

procedure, public :: on_watch_list_built_all

  • private subroutine on_watch_list_built_all(self, files, roots)

    Call on_watch_list_built(files, roots) on all registered features.

    Arguments

    Type IntentOptional Attributes Name
    class(feature_manager_t), intent(inout) :: self
    type(string_t), intent(inout), allocatable :: files(:)
    type(root_info_t), intent(inout), allocatable :: roots(:)

Source Code

   type feature_manager_t
      type(feature_box_t), allocatable :: feat(:)
   contains
      procedure :: add => fm_add
      procedure :: init_all
      procedure :: on_start_all
      procedure :: on_watch_list_built_all
      procedure :: on_manifest_changed_all
      procedure :: on_change_detected_all
      procedure :: on_before_run_all
      procedure :: on_after_run_all
   end type feature_manager_t