/******************************************************************************* * Copyright (c) 2013 Luigi Sgro. All rights reserved. This * program and the accompanying materials are made available under the terms of * the Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Luigi Sgro - initial API and implementation ******************************************************************************/ package com.quantcomponents.marketdata.osgi.proxy; import java.net.ConnectException; import java.util.Map; import com.quantcomponents.core.exceptions.RequestFailedException; import com.quantcomponents.core.model.IPrettyNamed; import com.quantcomponents.core.model.ITaskMonitor; import com.quantcomponents.core.remote.ITaskMonitorHostLocal; import com.quantcomponents.core.remote.ServiceHandle; import com.quantcomponents.marketdata.IRealTimeMarketDataManager; import com.quantcomponents.marketdata.IStockDatabase; import com.quantcomponents.marketdata.osgi.IMarketDataManagerHost; import com.quantcomponents.marketdata.osgi.IRealTimeMarketDataManagerHost; import com.quantcomponents.marketdata.osgi.IStockDatabaseHandleMap; import com.quantcomponents.marketdata.osgi.IStockDatabaseHost; import com.quantcomponents.marketdata.osgi.IStockDatabaseProxyFactory; public class RealTimeMarketDataManagerProxy extends MarketDataManagerProxy implements IRealTimeMarketDataManager, IStockDatabaseHandleMap, IPrettyNamed { public RealTimeMarketDataManagerProxy() {} public RealTimeMarketDataManagerProxy(IRealTimeMarketDataManagerHost dataManagerHost, ITaskMonitorHostLocal taskMonitorHost, IStockDatabaseProxyFactory stockDatabaseProxyFactory) { super(dataManagerHost, taskMonitorHost, stockDatabaseProxyFactory); } public void setDataManagerHost(IMarketDataManagerHost dataManagerHost, Map<?,?> properties) { IRealTimeMarketDataManagerHost.class.cast(dataManagerHost); super.setDataManagerHost(dataManagerHost, properties); } protected IRealTimeMarketDataManagerHost getMarketDataManagerHost() { return (IRealTimeMarketDataManagerHost) super.getMarketDataManagerHost(); } @Override public void startRealtimeUpdate(IStockDatabase stockDb, boolean fillHistoricalGap, ITaskMonitor taskMonitor) throws ConnectException, RequestFailedException { ServiceHandle<IStockDatabaseHost> stockDbHandle = stockDbHandlesByStockDb.get(stockDb); if (stockDbHandle == null) { throw new IllegalArgumentException("Stock database not found: " + stockDb); } getMarketDataManagerHost().startRealtimeUpdate(stockDbHandle, fillHistoricalGap, taskMonitor == null ? null : taskMonitorHost.addTaskMonitor(taskMonitor)); } @Override public void stopRealtimeUpdate(IStockDatabase stockDb) throws ConnectException, RequestFailedException { getMarketDataManagerHost().stopRealtimeUpdate(retrieveStockDatabaseHandle(stockDb)); } @Override public boolean isRealtimeUpdate(IStockDatabase stockDb) throws ConnectException, RequestFailedException { return getMarketDataManagerHost().isRealtimeUpdate(retrieveStockDatabaseHandle(stockDb)); } }