Container for multiple feature instances and their callback fan-out.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(feature_box_t), | public, | allocatable | :: | feat(:) |
Add a feature instance to the manager, transferring ownership.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(feature_manager_t), | intent(inout) | :: | self | |||
| class(watch_feature_t), | intent(inout), | allocatable | :: | f |
Call init(cfg) on all registered features.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(feature_manager_t), | intent(inout) | :: | self | |||
| type(watch_config_t), | intent(in) | :: | cfg |
Call on_after_run(exitstat, seconds) on all registered features.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(feature_manager_t), | intent(inout) | :: | self | |||
| integer, | intent(in) | :: | exitstat | |||
| real, | intent(in) | :: | seconds |
Call on_before_run(cmd) on all registered features.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(feature_manager_t), | intent(inout) | :: | self | |||
| character(len=:), | intent(inout), | allocatable | :: | cmd |
Call on_change_detected(changed) on all registered features.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(feature_manager_t), | intent(inout) | :: | self | |||
| type(string_t), | intent(in), | allocatable | :: | changed(:) |
Call on_manifest_changed(old_key, new_key) on all registered features.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(feature_manager_t), | intent(inout) | :: | self | |||
| integer(kind=int64), | intent(in) | :: | old_key | |||
| integer(kind=int64), | intent(in) | :: | new_key |
Call on_start() on all registered features.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(feature_manager_t), | intent(inout) | :: | self |
Call on_watch_list_built(files, roots) on all registered features.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(feature_manager_t), | intent(inout) | :: | self | |||
| type(string_t), | intent(inout), | allocatable | :: | files(:) | ||
| type(root_info_t), | intent(inout), | allocatable | :: | roots(:) |
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