/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.view.execution;
import java.util.EnumSet;
/**
* Encapsulates settings affecting the overall execution of a view process.
*/
public interface ViewExecutionOptions {
/**
* Gets the cycle execution sequence.
*
* @return the cycle execution sequence, not null
*/
ViewCycleExecutionSequence getExecutionSequence();
/**
* Gets the set of flags defining aspects of the execution behaviour in relation to the execution options.
*
* @return the set of flags, not null
*/
EnumSet<ViewExecutionFlags> getFlags();
/**
* Gets the maximum number of delta cycles following a full computation cycles.
*
* @return the maximum number of delta cycles following a full computation cycle, null for no limit
*/
Integer getMaxSuccessiveDeltaCycles();
/**
* Gets the maximum time to wait, in milliseconds, for market data to become available when
* {@link ViewExecutionFlags#AWAIT_MARKET_DATA} is in use.
*
* @return the maximum time to wait for market data to become available, null to use a default timeout.
* If less than or equal to zero, the effect is not to wait at all.
*/
Long getMarketDataTimeoutMillis();
/**
* Gets the default execution options. If the cycles in the execution sequence omit values from their execution options they will typically inherit these defaults
*
* @return the default execution options, null if not specified
*/
ViewCycleExecutionOptions getDefaultExecutionOptions();
}