FeatureAttribute Class

Indicates that a class belongs to a named feature.


Namespace: Microsoft.Modeling
Assembly: Microsoft.Xrt.Runtime (in Microsoft.Xrt.Runtime.dll)

'Usage

The following code illustrates the use of the FeatureAttribute. The first block is Cord code, the second is the model program.

/// Contains actions of the model, bounds, and switches.
config Actions 
{
    switch KeepOutputParametersUnexpanded = false;
    switch StepBound = 128;
    switch PathDepthBound = 128;

    action static void Implementation.SwitchRunning();
    action static void Implementation.SwitchMode();
    switch testclassbase = "vs";
}

/// Constructs a machine from the model program. 
/// Since the model is not finite, this machine explodes
/// and exploration is stopped by a bound.
machine BasicCalculator() : Actions
{
     construct model program
        where scope = "CalculatorModel",
              features = "RunningMode"
}

/// Defines a scenario for slicing.
machine ScientificCalculator(): Actions
{
    construct model program
         where scope = "CalculatorModel",
               features = "RunningMode, ScientificMode"
}

namespace CalculatorModel
{
    /// <summary>
    /// An example model program.
    /// </summary>

  [Feature("RunningMode")]
  public static class RunningMode
  {
      // State variable
      public static bool running;
  
      // Actions
      [Rule(Action = "SwitchRunning()")]
      public static void SwitchRunning()
      {
          running = !running;
      }
  }

  [Feature("ScientificMode")]
  public static class ScientificMode
  {
      static bool scientific;
      
      [Rule(Action = "SwitchMode()")]
      public static void SwitchMode()
      {
          Condition.IsTrue(RunningMode.running);
          // action enabled only when running is true
          scientific = !scientific;
      }
   }
}

Classes defined within a model program can be labeled as belonging to named feature sets using the [Feature(name)] attribute (where name is a string value). A feature is a named grouping of related state variables and rules representing a submodel of the overall model program.

For more information about using attributes, see Extending Metadata Using Attributes.


System.Object
   System.Attribute
    Microsoft.Modeling.FeatureAttribute

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Development Platforms

Microsoft Windows 7, Microsoft Windows Vista, Microsoft Windows XP SP2 or later, Microsoft Windows Server 2008, Microsoft Windows Server 2003

 



Community Additions

ADD
Show: