Property Identifiers
Nimbus state caching relies upon the the ability to reference a driver property by name from the driver implemenation code itself. Nimbus state caching allows couplings between properties to be expressed using string identifiers via the Property State Caching Editor and the Method State Caching Editor. These identifiers are known as property identifiers.
Property Identifiers Used in State Caching
Section titled “Property Identifiers Used in State Caching”There are three kinds of property identifiers used as cache keys in the Nimbus state caching engine:
-
Property name only.
Example:
BandwidthWhen only the property name is supplied, it is implied that the referenced property exists on the same interface and the same class as the method or property referring to the property. When Nimbus attempts to resolve this kind of property identifier, it will only look on the
IAcme4301interface on the same class as the calling method or property. -
Interface and property name only.
Example:
IAcm4301.BandwidthWhen only the interface and property name are supplied, it is implied that the referenced property exists on the specified interface and the same class as the method or property referring to the property. The specified interface may be the same interface or a different interface on the same class. When Nimbus attempts to resolve this kind of property identifier, it will only look on the same class as the calling method or property.
-
Parent repcap collection property with the interface and property name
Example:
Traces[3,4,5].IAcme4300Trace.BandwidthNimbus property identifiers also allow you to reference properties on different repeated capability classes. In the above example, the
Bandwidthproperty on three different instances of the class implementing theTracerepeated capability are being referenced. This allows complex cache couplings to be established between methods and properties without having to write procedural code.Nested repeated capabilities are supported by allowing the property identifier to include multiple parent repeated capabilities, as in the following:
Example:
Traces[TRACE1].Channels[CH2].IAcme4300Trace.BandwidthFinally, wildcard characters can be used to reference all repeated capability instances on a particular repeated capability, as in the following:
Example:
Traces[*].Channels[CH1,CH4,CH5-CH9].IAcme4300Trace.Frequency