public static void Save(IValueSink sink, ConfirmedServiceRequest value) { sink.EnterChoice((byte)value.Tag); switch(value.Tag) { case Tags.AcknowledgeAlarm: Value<AcknowledgeAlarmWrapper>.Save(sink, (AcknowledgeAlarmWrapper)value); break; case Tags.ConfirmedCOVNotification: Value<ConfirmedCOVNotificationWrapper>.Save(sink, (ConfirmedCOVNotificationWrapper)value); break; case Tags.ConfirmedEventNotification: Value<ConfirmedEventNotificationWrapper>.Save(sink, (ConfirmedEventNotificationWrapper)value); break; case Tags.GetEnrollmentSummary: Value<GetEnrollmentSummaryWrapper>.Save(sink, (GetEnrollmentSummaryWrapper)value); break; case Tags.GetEventInformation: Value<GetEventInformationWrapper>.Save(sink, (GetEventInformationWrapper)value); break; case Tags.SubscribeCOV: Value<SubscribeCOVWrapper>.Save(sink, (SubscribeCOVWrapper)value); break; case Tags.SubscribeCOVProperty: Value<SubscribeCOVPropertyWrapper>.Save(sink, (SubscribeCOVPropertyWrapper)value); break; case Tags.LifeSafetyOperation: Value<LifeSafetyOperationWrapper>.Save(sink, (LifeSafetyOperationWrapper)value); break; case Tags.AtomicReadFile: Value<AtomicReadFileWrapper>.Save(sink, (AtomicReadFileWrapper)value); break; case Tags.AtomicWriteFile: Value<AtomicWriteFileWrapper>.Save(sink, (AtomicWriteFileWrapper)value); break; case Tags.AddListElement: Value<AddListElementWrapper>.Save(sink, (AddListElementWrapper)value); break; case Tags.RemoveListElement: Value<RemoveListElementWrapper>.Save(sink, (RemoveListElementWrapper)value); break; case Tags.CreateObject: Value<CreateObjectWrapper>.Save(sink, (CreateObjectWrapper)value); break; case Tags.DeleteObject: Value<DeleteObjectWrapper>.Save(sink, (DeleteObjectWrapper)value); break; case Tags.ReadProperty: Value<ReadPropertyWrapper>.Save(sink, (ReadPropertyWrapper)value); break; case Tags.ReadPropertyConditional: Value<ReadPropertyConditionalWrapper>.Save(sink, (ReadPropertyConditionalWrapper)value); break; case Tags.ReadPropertyMultiple: Value<ReadPropertyMultipleWrapper>.Save(sink, (ReadPropertyMultipleWrapper)value); break; case Tags.ReadRange: Value<ReadRangeWrapper>.Save(sink, (ReadRangeWrapper)value); break; case Tags.WriteProperty: Value<WritePropertyWrapper>.Save(sink, (WritePropertyWrapper)value); break; case Tags.WritePropertyMultiple: Value<WritePropertyMultipleWrapper>.Save(sink, (WritePropertyMultipleWrapper)value); break; case Tags.DeviceCommunicationControl: Value<DeviceCommunicationControlWrapper>.Save(sink, (DeviceCommunicationControlWrapper)value); break; case Tags.ConfirmedPrivateTransfer: Value<ConfirmedPrivateTransferWrapper>.Save(sink, (ConfirmedPrivateTransferWrapper)value); break; case Tags.ConfirmedTextMessage: Value<ConfirmedTextMessageWrapper>.Save(sink, (ConfirmedTextMessageWrapper)value); break; case Tags.ReinitializeDevice: Value<ReinitializeDeviceWrapper>.Save(sink, (ReinitializeDeviceWrapper)value); break; case Tags.VtOpen: Value<VtOpenWrapper>.Save(sink, (VtOpenWrapper)value); break; case Tags.VtClose: Value<VtCloseWrapper>.Save(sink, (VtCloseWrapper)value); break; case Tags.VtData: Value<VtDataWrapper>.Save(sink, (VtDataWrapper)value); break; case Tags.Authenticate: Value<AuthenticateWrapper>.Save(sink, (AuthenticateWrapper)value); break; case Tags.RequestKey: Value<RequestKeyWrapper>.Save(sink, (RequestKeyWrapper)value); break; default: throw new Exception(); } sink.LeaveChoice(); }