Ticks.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / Ticks.cs / 1 / Ticks.cs

                            //---------------------------------------------------------------------------- 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//---------------------------------------------------------------------------
using System.Security;
 
namespace System.ServiceModel.Channels
{ 
    static class Ticks 
    {
        public static long Now 
        {
            /// 
            /// Critical - makes a native method call
            /// Safe - SafeNativeMethod 
            /// 
            [SecurityCritical, SecurityTreatAsSafe] 
            get 
            {
                long time; 
#pragma warning suppress 56523 // [....], function has no error return value
                SafeNativeMethods.GetSystemTimeAsFileTime(out time);
                return time;
            } 
        }
 
        public static long FromMilliseconds(int milliseconds) 
        {
            return checked ((long)milliseconds * TimeSpan.TicksPerMillisecond); 
        }

        public static int ToMilliseconds(long ticks)
        { 
            return checked((int) (ticks / TimeSpan.TicksPerMillisecond));
        } 
 
        public static long FromTimeSpan(TimeSpan duration)
        { 
            return duration.Ticks;
        }

        public static TimeSpan ToTimeSpan(long ticks) 
        {
            return new TimeSpan(ticks); 
        } 

        public static long Add(long firstTicks, long secondTicks) 
        {
            if (firstTicks == long.MaxValue || firstTicks == long.MinValue)
            {
                return firstTicks; 
            }
            if (secondTicks == long.MaxValue || secondTicks == long.MinValue) 
            { 
                return secondTicks;
            } 
            if (firstTicks >= 0 && long.MaxValue - firstTicks <= secondTicks)
            {
                return long.MaxValue - 1;
            } 
            if (firstTicks <= 0 && long.MinValue - firstTicks >= secondTicks)
            { 
                return long.MinValue + 1; 
            }
            return checked(firstTicks + secondTicks); 
        }
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK