Index: Src/GoogleApis/Apis/Util/IClock.cs =================================================================== new file mode 100644 --- /dev/null +++ b/Src/GoogleApis/Apis/Util/IClock.cs @@ -0,0 +1,45 @@ +/* +Copyright 2013 Google Inc + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +using System; + +namespace Google.Apis.Util +{ + /// Clock wrapper for getting the current time. + public interface IClock + { + /// + /// Gets a object that is set to the current date and time on this computer, + /// expressed as the local time. + /// + DateTime Now { get; } + } + + /// A default clock implementation that wraps the property. + public class SystemClock : IClock + { + /// Constructs a new system clock. + protected SystemClock() { } + + /// The default instance. + public static readonly IClock Default = new SystemClock(); + + public DateTime Now + { + get { return DateTime.Now; } + } + } +}