38 lines
3.3 KiB
Markdown
38 lines
3.3 KiB
Markdown
|
|
---
|
|||
|
|
source_files:
|
|||
|
|
- Common/DTS.CommonCore/Events/DASFactory/DASConfigurationEvent.cs
|
|||
|
|
generated_at: "2026-04-16T02:48:38.970688+00:00"
|
|||
|
|
model: "Qwen/Qwen3-Coder-Next-FP8"
|
|||
|
|
schema_version: 1
|
|||
|
|
sha256: "923244ee6528d02e"
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# DASFactory
|
|||
|
|
|
|||
|
|
### 1. **Purpose**
|
|||
|
|
This module defines the `DASConfigurationEvent` class, a Prism-based event used to propagate DAS (Device Abstraction Service) configuration-related notifications within the application. Specifically, it signals when configuration data is blank or missing—such as during an emergency download scenario where DAS must fall back to on-disk XML configuration files (per issue #17872). It serves as a decoupled communication mechanism for components that need to react to configuration state changes, particularly in fallback or error-handling workflows.
|
|||
|
|
|
|||
|
|
### 2. **Public Interface**
|
|||
|
|
- **`DASConfigurationEvent`**
|
|||
|
|
- **Type**: `class` (inherits from `CompositePresentationEvent<IDASConfigurationArg>`)
|
|||
|
|
- **Behavior**: A Prism event token used for publishing and subscribing to configuration notifications. The payload is of type `IDASConfigurationArg`, which (based on the interface import) is expected to carry configuration state details (e.g., file paths, validation status, or error context). No additional methods or properties are defined in this file.
|
|||
|
|
|
|||
|
|
### 3. **Invariants**
|
|||
|
|
- The event *always* carries a payload of type `IDASConfigurationArg` (as enforced by its base class `CompositePresentationEvent<T>`).
|
|||
|
|
- Subscribers must handle `null` payloads if `IDASConfigurationArg` allows it (source does not specify nullability constraints for the argument).
|
|||
|
|
- The event is intended *only* for configuration-related notifications (per the summary), and its usage should be limited to scenarios involving blank/missing configurations (e.g., emergency downloads).
|
|||
|
|
- No ordering guarantees or delivery semantics are specified beyond Prism’s default `CompositePresentationEvent` behavior (thread-safe, background dispatch, etc.).
|
|||
|
|
|
|||
|
|
### 4. **Dependencies**
|
|||
|
|
- **Imports/References**:
|
|||
|
|
- `DTS.Common.Interface.DASFactory.IDASConfigurationArg` (interface defining the configuration argument contract)
|
|||
|
|
- `Microsoft.Practices.Prism.Events.CompositePresentationEvent<T>` (Prism event infrastructure)
|
|||
|
|
- **Depended upon by**:
|
|||
|
|
- Any module/component that needs to respond to DAS configuration anomalies (e.g., emergency download logic, configuration validators, UI status indicators).
|
|||
|
|
- *Not inferred*: Concrete implementations of `IDASConfigurationArg` or publishers of this event are not visible in this file.
|
|||
|
|
|
|||
|
|
### 5. **Gotchas**
|
|||
|
|
- The event name `DASConfigurationEvent` is generic, but its documented purpose is narrow (blank/missing configs only). Misuse for *general* configuration changes could break assumptions in subscribers.
|
|||
|
|
- The `IDASConfigurationArg` interface is imported but not defined here; its contract (e.g., properties like `IsBlank`, `FilePath`, `ErrorCode`) must be verified in `DTS.Common.Interface.DASFactory` to avoid misinterpretation of payload semantics.
|
|||
|
|
- No explicit error-handling guidance is provided for subscribers (e.g., whether to log, retry, or abort).
|
|||
|
|
- The comment references issue #17872; historical context for this event’s creation may be critical for correct usage but is not embedded in the source.
|