public void start()

in java/connectors/uniswap/src/main/java/com/epam/deltix/data/connectors/uniswap/UniswapFeed.java [43:159]


    public void start() {
        super.start();

        // 1. resolve uniswap token ids
        IdentifiedUniswapSymbol[] identifiedUniswapSymbols;
        if (symbols == null || symbols.length == 0) {
            identifiedUniswapSymbols = new IdentifiedUniswapSymbol[]{};
        } else {
            try {
                identifiedUniswapSymbols = getIdentifiedUniswapSymbols();
            } catch (final Throwable t) {
                onError(t);
                return; // cannot continue without ids.
                // The error event sent to be resolved (process to be re-scheduled)
            }
        }

        // 2. prepare and run pollers
        final MdModel.Options selected = selected();

        final List<Subscription> subscriptions = new ArrayList<>();

        if (selected.custom(FactoryAction.class)) {
            subscriptions.add(new FactorySubscription(
                    uri,
                    this,
                    logger(),
                    identifiedUniswapSymbols
            ));
        }
        if (selected.custom(BundleAction.class)) {
            subscriptions.add(new BundleSubscription(
                    uri,
                    this,
                    logger(),
                    identifiedUniswapSymbols
            ));
        }
        if (selected.custom(PoolAction.class)) {
            subscriptions.add(new PoolSubscription(
                    uri,
                    this,
                    logger(),
                    identifiedUniswapSymbols
            ));
        }
        if (selected.custom(TokenAction.class)) {
            subscriptions.add(new TokenSubscription(
                    uri,
                    this,
                    logger(),
                    identifiedUniswapSymbols
            ));
        }
        if (selected.custom(PositionAction.class)) {
            subscriptions.add(new PositionSubscription(
                    uri,
                    this,
                    logger(),
                    identifiedUniswapSymbols
            ));
        }

        if (selected.custom(TickAction.class)) {
            subscriptions.add(new TickSubscription(
                    uri,
                    this,
                    logger(),
                    identifiedUniswapSymbols
            ));
        }

        if (selected.custom(SwapAction.class)) {
            subscriptions.add(new SwapSubscription(
                    uri,
                    this,
                    logger(),
                    identifiedUniswapSymbols
            ));
        }

        if (selected.custom(MintAction.class)) {
            subscriptions.add(new MintSubscription(
                    uri,
                    this,
                    logger(),
                    identifiedUniswapSymbols
            ));
        }

        if (selected.custom(BurnAction.class)) {
            subscriptions.add(new BurnSubscription(
                    uri,
                    this,
                    logger(),
                    identifiedUniswapSymbols
            ));
        }

        if (selected.level2()) {
            subscriptions.add(new PriceSubscription(
                    uniswapApiUrl,
                    this,
                    logger(),
                    selected,
                    amount,
                    depth,
                    identifiedUniswapSymbols
            ));
        }

        for (final Subscription subscription : subscriptions) {
            for (final HttpPoller poller : subscription.get()) {
                schedule(poller, pollTimeoutMillis);
            }
        }
    }