public static void Save(IValueSink sink, PropertyStates value)
{
sink.EnterChoice((byte)value.Tag);
switch(value.Tag)
{
case Tags.BooleanValue:
Value<BooleanValueWrapper>.Save(sink, (BooleanValueWrapper)value);
break;
case Tags.BinaryValue:
Value<BinaryValueWrapper>.Save(sink, (BinaryValueWrapper)value);
break;
case Tags.EventType:
Value<EventTypeWrapper>.Save(sink, (EventTypeWrapper)value);
break;
case Tags.Polarity:
Value<PolarityWrapper>.Save(sink, (PolarityWrapper)value);
break;
case Tags.ProgramChange:
Value<ProgramChangeWrapper>.Save(sink, (ProgramChangeWrapper)value);
break;
case Tags.ProgramState:
Value<ProgramStateWrapper>.Save(sink, (ProgramStateWrapper)value);
break;
case Tags.ReasonForHalt:
Value<ReasonForHaltWrapper>.Save(sink, (ReasonForHaltWrapper)value);
break;
case Tags.Reliability:
Value<ReliabilityWrapper>.Save(sink, (ReliabilityWrapper)value);
break;
case Tags.State:
Value<StateWrapper>.Save(sink, (StateWrapper)value);
break;
case Tags.SystemStatus:
Value<SystemStatusWrapper>.Save(sink, (SystemStatusWrapper)value);
break;
case Tags.Units:
Value<UnitsWrapper>.Save(sink, (UnitsWrapper)value);
break;
case Tags.UnsignedValue:
Value<UnsignedValueWrapper>.Save(sink, (UnsignedValueWrapper)value);
break;
case Tags.LifeSafetyMode:
Value<LifeSafetyModeWrapper>.Save(sink, (LifeSafetyModeWrapper)value);
break;
case Tags.LifeSafetyState:
Value<LifeSafetyStateWrapper>.Save(sink, (LifeSafetyStateWrapper)value);
break;
default:
throw new Exception();
}
sink.LeaveChoice();
}