// Copyright © 2016 The CefSharp Authors. All rights reserved.
//
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
using System;
namespace CefSharp.Internals
{
///
/// Mapping to/from CefBaseTime
///
public static class CefTimeUtils
{
private static IBaseTimeConverter BaseTimeConverter = new BaseTimeConverter();
///
/// Assign your own custom converter
/// used to convert to/from CefBaseTime
///
/// converter
///
/// Must be called in all processes for custom conversion of DateTime
/// used by the Sync Javascript Binding (.Net 4.x only)
///
public static void UseBaseTimeConveter(IBaseTimeConverter converter)
{
if (converter == null)
{
throw new ArgumentNullException(nameof(converter));
}
BaseTimeConverter = converter;
}
///
/// Converts from CefBaseTime to DateTime?
///
///
/// Represents a wall clock time in UTC. Values are not guaranteed to be monotonically
/// non-decreasing and are subject to large amounts of skew. Time is stored internally
/// as microseconds since the Windows epoch (1601).
///
/// if is 0 then returns null otherwise returns a of
public static DateTime? FromBaseTimeToNullableDateTime(long val)
{
if(val == 0)
{
return null;
}
return FromBaseTimeToDateTime(val);
}
///
/// Converts from CefBaseTime to DateTime
///
///
/// Represents a wall clock time in UTC. Values are not guaranteed to be monotonically
/// non-decreasing and are subject to large amounts of skew. Time is stored internally
/// as microseconds since the Windows epoch (1601).
///
/// returns a of
public static DateTime FromBaseTimeToDateTime(long val)
{
return BaseTimeConverter.FromBaseTimeToDateTime(val);
}
///
/// Converts from DateTime to CefBaseTime
///
/// DateTime
///
/// Represents a wall clock time in UTC. Time as microseconds since the Windows epoch (1601).
///
public static long FromDateTimeToBaseTime(DateTime dateTime)
{
return BaseTimeConverter.FromDateTimeToBaseTime(dateTime);
}
}
}