Files
DP44/enriched-qwen3-coder-next/Common/DTS.Common/Events/DASFactory.md
2026-04-17 14:55:32 -04:00

2.8 KiB
Raw Blame History

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.Common/Events/DASFactory/DASConfigurationEvent.cs
2026-04-16T03:25:13.824064+00:00 Qwen/Qwen3-Coder-Next-FP8 1 e69018b59746b653

DASFactory

1. Purpose

This module defines the DASConfigurationEvent, a Prism-based pub/sub event used to notify subscribers about DAS (Device Abstraction Service) configuration state changes—specifically, to signal when configuration data is blank or missing. It supports emergency download scenarios (per issue #17872) where DAS must fall back to XML configuration files on disk when filestore entries are blank, ensuring robustness during recovery operations.

2. Public Interface

  • DASConfigurationEvent
    • Type: class (inherits from PubSubEvent<IDASConfigurationArg>)
    • Behavior: A Prism PubSubEvent payload for publishing and subscribing to configuration-related notifications. The event carries an argument of type IDASConfigurationArg, which encapsulates the configuration state (e.g., blank/missing indicators). Subscribers receive this event when DAS configuration issues occur.

3. Invariants

  • The event only publishes when configuration data is blank or missing; it is not used for normal (valid) configuration updates.
  • The payload type is strictly IDASConfigurationArg; no other argument types are supported.
  • The event inherits Prisms PubSubEvent<TPayload> semantics:
    • Subscriptions are weak-referenced by default (to prevent memory leaks).
    • Events are published asynchronously unless explicitly configured otherwise via Prisms ThreadOption.

4. Dependencies

  • Depends on:
    • Prism.Events (for PubSubEvent<T> base class).
    • DTS.Common.Interface.DASFactory.IDASConfigurationArg (the payload interface defining the contract for configuration arguments).
  • Used by:
    • Components in the DAS factory or configuration subsystem that detect blank/missing configurations (e.g., during emergency download workflows).
    • Subscribers (e.g., UI or service layers) that need to react to configuration failures (e.g., by prompting user action or switching to fallback XML files).

5. Gotchas

  • The event is not intended for general configuration changes—only for blank/missing states. Publishing it for valid configurations would violate its semantic contract.
  • The actual structure and contents of IDASConfigurationArg are defined externally (in DTS.Common.Interface.DASFactory); this file does not specify them, so behavior details (e.g., which properties indicate "blank/missing") are not inferable here.
  • No explicit error codes or metadata are included in the event itself; subscribers must rely on IDASConfigurationArgs implementation for diagnostic details.
  • None identified from source alone.