--- source_files: - DataPRO/IService/SLICE Service/SystemAttribute.cs - DataPRO/IService/SLICE Service/Attribute.cs - DataPRO/IService/SLICE Service/EventAttribute.cs generated_at: "2026-04-17T15:40:14.448178+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "59bc9d04c12dd004" --- # Documentation: DTS.Slice.Service Attribute Classes ## 1. Purpose This module provides an attribute hierarchy for the SLICE Service within the DataPRO system. The `Attribute` class serves as a base class for typed attributes associated with different stores (Arm, Event, System, User), with serialization support for dictionary-to-byte-array conversions. `SystemAttribute` and `EventAttribute` are derived classes intended to represent system-level and event-level attributes respectively. **Note: The majority of the implementation in `SystemAttribute` and `EventAttribute` is currently commented out, leaving these classes as essentially empty shells.** ## 2. Public Interface ### `Attribute` (Base Class) **Constructor:** - `protected Attribute()` — Parameterless constructor is protected, preventing direct instantiation. **Constants:** - `public const int MaxSingleAttributeSize = 500` — Maximum size for a single attribute. - `public const int BulkAttributeStartNumber = 3000` — Starting number for bulk attributes. **Protected Properties:** - `protected AttributeInterface Store { get; set; }` — The attribute store type (Arm, Event, System, User). - `protected AttributeTypes.AttributeDataTypes datatype` — The data type of the attribute. - `protected ushort key` — The attribute key. - `protected object value` — The attribute value. **Protected Methods:** - `protected Dictionary ByteArrayToDict(byte[] bytes)` — Deserializes a byte array into a `Dictionary`. Each pair consists of 1 byte key + 8 bytes double value (9 bytes total per pair). - `protected byte[] DictToByteArray(Dictionary dict)` — Serializes a `Dictionary` into a byte array using the same 9-byte-per-pair format. **Protected Enum:** - `AttributeInterface` — Values: `Arm`, `Event`, `System`, `User` --- ### `SystemAttribute` (Derived Class) - Inherits from `Attribute` - **No active members.** The class body contains only commented-out code referencing a `TypeValues` enum and derived attribute classes (`SerialNumberAttribute`, `TotalEventsStoredAttribute`). --- ### `EventAttribute` (Derived Class) - Inherits from `Attribute` - **No active members.** The class body contains only commented-out code referencing a `TypeValues` enum and numerous derived attribute classes (`EventNumber`, `EventName`, `EventSampleRate`, `EventDescription`, `EventTotalSamples`, `EventTriggerSampleNumber`, `EventStartRecordSampleNumber`, `EventTotalChannels`, `EventFilterFrequency`, `EventStartTime`, `EventExcitation`, `PreEventScaleFactors`, `PostEventScaleFactors`, `EventConfigAttributes`). ## 3. Invariants - The `Attribute` constructor is protected; only derived classes can instantiate. - Dictionary serialization format: Each key-value pair occupies exactly 9 bytes (1 byte for key + 8 bytes for double). - `ByteArrayToDict` assumes the input byte array length is evenly divisible by the pair size (9 bytes); behavior is undefined otherwise. - The `Store` property must be one of the four `AttributeInterface` values. ## 4. Dependencies **This module depends on:** - `System` (mscorlib) - `System.Collections.Generic` (mscorlib) - `System.Text` (mscorlib) - `DTS.Common.Utils` — Imported in `Attribute.cs` but no types from this namespace are actively used in the visible code. - `DTS.DASLib.Command.SLICE` — Provides `ByteConvertor` class (referenced in commented code) and `AttributeTypes.AttributeDataTypes` (referenced in active code). **What depends on this module:** - Cannot be determined from the provided source files alone. **Referenced but not defined in these files:** - `AttributeTypes.AttributeDataTypes` — Used for the `datatype` field; location unclear (possibly in `DTS.DASLib.Command