package com.activequant.servicelayer.soap;
import java.io.IOException;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.ws.BindingType;
import javax.xml.ws.soap.MTOM;
import javax.xml.ws.soap.SOAPBinding;
import com.activequant.domainmodel.Instrument;
import com.activequant.domainmodel.TimeFrame;
import com.activequant.domainmodel.exceptions.DaoException;
import com.activequant.domainmodel.exceptions.InvalidDataException;
import com.activequant.dto.ClearedTradeDto;
@WebService
@MTOM(enabled = false)
@BindingType(SOAPBinding.SOAP11HTTP_BINDING)
public interface IMainService {
@WebMethod
public String[] instrumentKeys();
@WebMethod
public String[] findInstrumentKeys(
@WebParam(name = "regexPattern") String regexPattern);
@WebMethod
public String[] mdiKeys();
@WebMethod
public String[] findMdiKeys(
@WebParam(name = "regexPattern") String regexPattern);
@WebMethod
public String[] tdiKeys();
@WebMethod
public String[] findTdiKeys(
@WebParam(name = "regexPattern") String regexPattern);
@WebMethod
public Instrument loadInstrument(
@WebParam(name = "primaryKey") String primaryKey);
@WebMethod
public void storeInstrument(
@WebParam(name = "instrument") Instrument instrument);
@WebMethod
public int randomNumber();
@WebMethod
public int instrumentCount();
@WebMethod
public int mdiCount();
@WebMethod
public int add(@WebParam(name = "a")int a, @WebParam(name = "b")int b);
@WebMethod
public String[][] getSampleMap();
@WebMethod
public double[][] getTimeSeries(
@WebParam(name = "seriesId") String seriesId,
@WebParam(name = "seriesColumn") String column,
@WebParam(name = "timeFrame") TimeFrame timeFrame,
@WebParam(name = "startTimeStamp") String date8Start,
@WebParam(name = "endTimeStamp") String date8End) throws Exception;
@WebMethod
public void saveTimeSeriesValue(@WebParam(name = "seriesKey") String seriesKey, @WebParam(name = "timeFrame") TimeFrame timeFrame,
@WebParam(name = "nanoseconds") long nanoSeconds, @WebParam(name = "field") String key, @WebParam(name = "value") double value) throws IOException;
@WebMethod
public void saveTimeSeriesValues(@WebParam(name = "seriesKey") String seriesKey, @WebParam(name = "timeFrame") TimeFrame timeFrame, @WebParam(name = "field") String key,
@WebParam(name = "nanoseconds") long[] nanoSeconds, @WebParam(name = "values") double[] value) throws IOException;
@WebMethod
public void storeKeyVal(@WebParam(name = "key") String key,
@WebParam(name = "value") String val);
@WebMethod
public String fetchKeyVal(@WebParam(name = "key") String key);
@WebMethod
public double testCall() throws Exception;
@WebMethod
public void addPnS(@WebParam(name = "tradeableId") String tradeableId, @WebParam(name = "date8") long date8,
@WebParam(name = "clearingAccountId") String clearingAccountId, @WebParam(name = "currency") String currency, @WebParam(name = "netAmount") Double netAmount) throws DaoException;
@WebMethod
public void addPNL(@WebParam(name = "tradeableId") String tradeableId,@WebParam(name = "date8") long date8,
@WebParam(name = "clearingAccountId") String clearingAccountId, @WebParam(name = "currency") String currency, @WebParam(name = "grossPnL") Double grossPNL,
@WebParam(name = "netPnL") Double netPNL) throws DaoException;
}