quickfix.SystemTimeSource Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of quickfixj-core Show documentation
Show all versions of quickfixj-core Show documentation
The core QuickFIX/J engine
The newest version!
/*******************************************************************************
* Copyright (c) quickfixengine.org All rights reserved.
*
* This file is part of the QuickFIX FIX Engine
*
* This file may be distributed under the terms of the quickfixengine.org
* license as defined by quickfixengine.org and appearing in the file
* LICENSE included in the packaging of this file.
*
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING
* THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE.
*
* See http://www.quickfixengine.org/LICENSE for licensing information.
*
* Contact [email protected] if any conditions of this licensing
* are not clear to you.
******************************************************************************/
package quickfix;
import java.time.LocalDateTime;
/**
* Interface for obtaining system time. A system time source should be used
* instead of direct system time to facilitate unit testing.
*/
public interface SystemTimeSource {
/**
* Obtain the current time.
*
* Do NOT use this for measuring elapsed time but use
* {@link #getTimeFromNanos()} instead.
*
* @return current (possible simulated) time
*/
long getTime();
/**
* Obtain the current nano time.
*
* This should ONLY be used to measure elapsed time. Use {@link #getTime()}
* for getting the current system time.
*
* @return current (possible simulated) nano time.
*/
long getTimeFromNanos();
/**
* Obtain current LocalDateTime.
*
* @return current (possible simulated) time up to nanosecond precision.
*/
LocalDateTime getNow();
}