Files

39 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
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.