39 lines
2.8 KiB
Markdown
39 lines
2.8 KiB
Markdown
---
|
||
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 Prism’s `PubSubEvent<TPayload>` semantics:
|
||
- Subscriptions are weak-referenced by default (to prevent memory leaks).
|
||
- Events are published asynchronously unless explicitly configured otherwise via Prism’s `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. |