Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        /// <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");
            }
        }
Ejemplo n.º 3
0
        /// <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);
        }