Package com.barchart.feed.test.replay

Source Code of com.barchart.feed.test.replay.BarchartMarketplaceReplay

package com.barchart.feed.test.replay;

import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.concurrent.AbstractExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;

import com.barchart.feed.base.sub.Sub;
import com.barchart.feed.base.sub.SubscriptionHandler;
import com.barchart.feed.client.provider.BarchartMarketplace;
import com.barchart.feed.ddf.market.provider.DDF_Marketplace;
import com.barchart.feed.ddf.message.api.DDF_BaseMessage;
import com.barchart.feed.ddf.message.api.DDF_MarketBase;

public class BarchartMarketplaceReplay extends BarchartMarketplace {

  public BarchartMarketplaceReplay() {
    super(DDF_Marketplace.newInstance(new DummySubHandler()),
        new InlineExecutorService());
  }

  public void handleMessage(final DDF_BaseMessage message) {
    if (message instanceof DDF_MarketBase) {
      final DDF_MarketBase marketMessage = (DDF_MarketBase) message;
      maker.make(marketMessage);
    }
  }

  public DDF_Marketplace maker() {
    return maker;
  }

  private static class DummySubHandler implements SubscriptionHandler {

    @Override
    public Future<Boolean> subscribe(final Sub subscription) {
      return null;
    }

    @Override
    public Future<Boolean> subscribe(final Set<Sub> subscriptions) {
      return null;
    }

    @Override
    public Future<Boolean> unsubscribe(final Sub subscription) {
      return null;
    }

    @Override
    public Future<Boolean> unsubscribe(final Set<Sub> subscriptions) {
      return null;
    }

  }

  private static class InlineExecutorService extends AbstractExecutorService {

    private boolean shutdown = false;

    @Override
    public void shutdown() {
      shutdown = true;
    }

    @Override
    public List<Runnable> shutdownNow() {
      shutdown = true;
      return Collections.emptyList();
    }

    @Override
    public boolean isShutdown() {
      return shutdown;
    }

    @Override
    public boolean isTerminated() {
      return shutdown;
    }

    @Override
    public boolean awaitTermination(final long timeout, final TimeUnit unit)
        throws InterruptedException {
      shutdown();
      return true;
    }

    @Override
    public void execute(final Runnable command) {
      if (shutdown) {
        throw new IllegalStateException("Executor is shutdown");
      }
      command.run();
    }

  }

}
TOP

Related Classes of com.barchart.feed.test.replay.BarchartMarketplaceReplay

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.