internal static unsafe ChaosScheduleTimeRangeUtc FromNative(IntPtr pointer) { var nativeTimeRange = *(NativeTypes.FABRIC_CHAOS_SCHEDULE_TIME_RANGE_UTC *)pointer; var startTime = ChaosScheduleTimeUtc.FromNative(nativeTimeRange.StartTime); var endTime = ChaosScheduleTimeUtc.FromNative(nativeTimeRange.EndTime); return(new ChaosScheduleTimeRangeUtc(startTime, endTime)); }
/// <summary> /// Reads the state of this object from byte array. /// </summary> /// <param name="br">A BinaryReader object</param> /// <exception cref="EndOfStreamException">The end of the stream is reached. </exception> /// <exception cref="IOException">An I/O error occurs. </exception> public override void Read(BinaryReader br) { decimal objectVersion = br.ReadDecimal(); if (objectVersion >= ChaosConstants.ApiVersion62) { this.StartTime = new ChaosScheduleTimeUtc(0, 0); this.StartTime.Read(br); this.EndTime = new ChaosScheduleTimeUtc(0, 0); this.EndTime.Read(br); } else { TestabilityTrace.TraceSource.WriteError(TraceComponent, "Attempting to read a version of object below lowest version. Saw {0}. Expected >=6.2", objectVersion); ReleaseAssert.Fail("Failed to read byte serialization of ChaosScheduleTimeRangeUtc"); } }
/// <summary> /// <para>Initializes a new instance of the <see cref="System.Fabric.Chaos.DataStructures.ChaosScheduleTimeRangeUtc" /> class with a provided start and end time.</para> /// </summary> /// <param name="startTime">Start of time range.</param> /// <param name="endTime">End of time range.</param> public ChaosScheduleTimeRangeUtc(ChaosScheduleTimeUtc startTime, ChaosScheduleTimeUtc endTime) { if (startTime == null) { throw new System.ArgumentNullException( "StartTime", StringResources.ChaosScheduler_ScheduleJobTimeIsNull); } if (endTime == null) { throw new System.ArgumentNullException( "EndTime", StringResources.ChaosScheduler_ScheduleJobTimeIsNull); } this.StartTime = new ChaosScheduleTimeUtc(startTime); this.EndTime = new ChaosScheduleTimeUtc(endTime); }