/** * Handle a subscribe or unsubscribe event */ public void handleEvent(final BitfinexStreamSymbol symbol) { final List<FutureOperation> futuresToFinish = pendingFutures .stream() .filter(f -> f.getSymbol().equals(symbol)) .collect(Collectors.toList()); pendingFutures.removeAll(futuresToFinish); futuresToFinish.forEach(f -> f.setToDone()); }
/** * The the future to done */ public void setToDone() { if(! isDone()) { doneLatch.countDown(); } }
/** * Unsubscribe a ticker * @param tickerSymbol * @return */ public FutureOperation unsubscribeTicker(final BitfinexTickerSymbol tickerSymbol) { final FutureOperation future = new FutureOperation(tickerSymbol); pendingUnsubscribes.registerFuture(future); lastTickerActivity.remove(tickerSymbol); final UnsubscribeChannelCommand command = new UnsubscribeChannelCommand(tickerSymbol); client.sendCommand(command); return future; }
/** * Unsubscribe the candles * @param currencyPair * @param timeframe * @return */ public FutureOperation unsubscribeCandles(final BitfinexCandlestickSymbol symbol) { lastTickerActivity.remove(symbol); final FutureOperation future = new FutureOperation(symbol); pendingUnsubscribes.registerFuture(future); final UnsubscribeChannelCommand command = new UnsubscribeChannelCommand(symbol); client.sendCommand(command); return future; }
/** * Subscribe candles for a symbol * @param currencyPair * @param timeframe * @return * @throws BitfinexClientException */ public FutureOperation subscribeCandles(final BitfinexCandlestickSymbol symbol) throws BitfinexClientException { final FutureOperation future = new FutureOperation(symbol); pendingSubscribes.registerFuture(future); final SubscribeCandlesCommand command = new SubscribeCandlesCommand(symbol); client.sendCommand(command); return future; }
/** * Subscribe a ticker * @param tickerSymbol * @return * @throws BitfinexClientException */ public FutureOperation subscribeTicker(final BitfinexTickerSymbol tickerSymbol) throws BitfinexClientException { final FutureOperation future = new FutureOperation(tickerSymbol); pendingSubscribes.registerFuture(future); final SubscribeTickerCommand command = new SubscribeTickerCommand(tickerSymbol); client.sendCommand(command); return future; }
/** * Unsubscribe a executed trades channel * @param currencyPair * @param orderBookPrecision * @param orderBookFrequency * @param pricePoints * @return */ public FutureOperation unsubscribeExecutedTrades(final BitfinexExecutedTradeSymbol tradeSymbol) { final FutureOperation future = new FutureOperation(tradeSymbol); pendingUnsubscribes.registerFuture(future); final UnsubscribeChannelCommand command = new UnsubscribeChannelCommand(tradeSymbol); client.sendCommand(command); return future; }
/** * Subscribe a executed trade channel * @param currencyPair * @param orderBookPrecision * @param orderBookFrequency * @param pricePoints * @return */ public FutureOperation subscribeExecutedTrades(final BitfinexExecutedTradeSymbol tradeSymbol) { final FutureOperation future = new FutureOperation(tradeSymbol); pendingSubscribes.registerFuture(future); final SubscribeTradesCommand subscribeOrderbookCommand = new SubscribeTradesCommand(tradeSymbol); client.sendCommand(subscribeOrderbookCommand); return future; }