package edu.brown.benchmark.tpce.generators;
import java.util.Date;
import edu.brown.benchmark.tpce.generators.TradeGenerator.TradeType;
import edu.brown.benchmark.tpce.util.EGenDate;
import edu.brown.benchmark.tpce.util.EGenMoney;
public class MEEPriceBoard {
public MEEPriceBoard( int tradingTimeSoFar, Date baseTime, Date currentTime, SecurityHandler securityFile, int configuredCustomerCount){
fMeanInTheMoneySubmissionDelay = 1.0 ;
security = new MEESecurity();
this.securityFile = securityFile;
numberOfSecurities = 0;
numberOfSecurities = SecurityHandler.getSecurityNum(configuredCustomerCount);
security.init( tradingTimeSoFar, baseTime, currentTime, fMeanInTheMoneySubmissionDelay );
securityFile.loadSymbolToIdMap();
}
public void getSymbol(long securityIndex,String szOutput, int outputLen){
szOutput = securityFile.createSymbol( securityIndex, outputLen );
}
public EGenMoney getMinPrice(){
return( security.getMinPrice( ));
}
public EGenMoney getMaxPrice(){
return( security.getMaxPrice( ));
}
public EGenMoney getCurrentPrMEESecurityice( long securityIndex ){
return( security.getCurrentPrice( securityIndex ));
}
public EGenMoney getCurrentPrice( long securityIndex ){
return( security.getCurrentPrice( securityIndex ));
}
public EGenMoney getCurrentPrice( String securitySymbol ){
return( security.getCurrentPrice( securityFile.getIndex( securitySymbol )));
}
public EGenMoney CalculatePrice(String securitySymbol, double fTime ){
return( security.calculatePrice( securityFile.getIndex( securitySymbol ), fTime ));
}
public double getSubmissionTime(String securitySymbol, double fPendingTime, EGenMoney fLimitPrice, TradeType eTradeTypeID){
return( security.getSubmissionTime( securityFile.getIndex( securitySymbol ), fPendingTime, fLimitPrice, eTradeTypeID ));
}
public double getSubmissionTime(long securityIndex, double fPendingTime, EGenMoney fLimitPrice, TradeType eTradeTypeID){
return( security.getSubmissionTime( securityIndex, fPendingTime, fLimitPrice, eTradeTypeID ));
}
public double getCompletionTime(long securityIndex,double fSubmissionTime, EGenMoney pCompletionPrice ){
Object obj = security.getCompletionTimeAndPrice( securityIndex, fSubmissionTime)[0];
String str = obj.toString();
return Double.valueOf(str).doubleValue();
}
public long getNumOfSecurities(){
return numberOfSecurities;
}
private long numberOfSecurities;
private double fMeanInTheMoneySubmissionDelay;
private MEESecurity security;
private SecurityHandler securityFile;
}