| /* |
| * Copyright 2015-2018 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. |
| */ |
| package com.amazonaws; |
| |
| /** |
| * Used for clock skew adjustment between the client JVM where the SDK is run, |
| * and the server side. |
| */ |
| public class SDKGlobalTime { |
| /** |
| * globalTimeOffset is a time difference in seconds between the running JVM |
| * and AWS. Used to globally adjust the client clock skew. Java SDK already |
| * provides timeOffset and accessor methods in <code>Request</code> class but |
| * those are used per request, whereas this variable will adjust clock skew |
| * globally. Java SDK detects clock skew errors and adjusts global clock |
| * skew automatically. |
| */ |
| private static volatile int globalTimeOffset; |
| |
| /** |
| * Sets the global time difference in seconds between the running JVM and |
| * AWS. If this value is set then all the subsequent instantiation of an |
| * <code>AmazonHttpClient</code> will start using this |
| * value to generate timestamps. |
| * |
| * @param timeOffset |
| * the time difference in seconds between the running JVM and AWS |
| */ |
| public static void setGlobalTimeOffset(int timeOffset) { |
| globalTimeOffset = timeOffset; |
| } |
| |
| /** |
| * Gets the global time difference in seconds between the running JVM and |
| * AWS. See <code>Request#getTimeOffset()</code> if global time offset is |
| * not set. |
| */ |
| public static int getGlobalTimeOffset() { |
| return globalTimeOffset; |
| } |
| } |