using Amazon.Util; /* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file 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; using System.Diagnostics; using System.Text; using System.Threading; namespace Amazon.Runtime.Internal.Util { public static partial class Extensions { private static readonly long TicksPerSecond = TimeSpan.FromSeconds(1).Ticks; private static readonly double TickFrequency = TicksPerSecond / (double)Stopwatch.Frequency; public static long GetElapsedDateTimeTicks(this Stopwatch self) { double stopwatchTicks = self.ElapsedTicks; var ticks = (long)(stopwatchTicks * TickFrequency); return ticks; } /// /// Returns true if the Content is set or there are /// query parameters. /// /// This request /// True if data is present; false otherwise. public static bool HasRequestData(this IRequest request) { if (request == null) return false; if (request.ContentStream != null || request.Content != null) return true; return request.Parameters.Count > 0; } #if BCL35 public static bool Wait(this WaitHandle semaphore) { return semaphore.WaitOne(); } public static void Dispose(this WaitHandle semaphore) { semaphore.Close(); } #endif } }