Files
2026-04-17 14:55:32 -04:00

39 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
source_files:
- Common/DTS.Common/Events/DASFactory/DASConfigurationEvent.cs
generated_at: "2026-04-16T03:25:13.824064+00:00"
model: "Qwen/Qwen3-Coder-Next-FP8"
schema_version: 1
sha256: "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 `IDASConfigurationArg`s implementation for diagnostic details.
- None identified from source alone.