
com.fluxtion.server.lib.pnl.calculator.EventFeedConnector Maven / Gradle / Ivy
/*
*
* * SPDX-FileCopyrightText: © 2024 Gregory Higgins
* * SPDX-License-Identifier: AGPL-3.0-only
*
*/
package com.fluxtion.server.lib.pnl.calculator;
import com.fluxtion.runtime.EventProcessorContext;
import com.fluxtion.runtime.EventProcessorContextListener;
import com.fluxtion.runtime.annotations.ExportService;
import com.fluxtion.runtime.annotations.Initialise;
import com.fluxtion.runtime.annotations.OnEventHandler;
import com.fluxtion.runtime.annotations.builder.FluxtionIgnore;
import com.fluxtion.runtime.annotations.runtime.ServiceRegistered;
import com.fluxtion.server.config.ConfigListener;
import com.fluxtion.server.config.ConfigMap;
import com.fluxtion.server.lib.pnl.MidPrice;
import com.fluxtion.server.lib.pnl.PnlCalculator;
import com.fluxtion.server.lib.pnl.Trade;
import com.fluxtion.server.lib.pnl.dto.*;
import com.fluxtion.server.lib.pnl.refdata.InMemorySymbolLookup;
import com.fluxtion.server.lib.pnl.refdata.Instrument;
import com.fluxtion.server.lib.pnl.refdata.Symbol;
import com.fluxtion.server.service.admin.AdminCommandRegistry;
import lombok.extern.log4j.Log4j2;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
@Log4j2
public class EventFeedConnector implements EventProcessorContextListener, @ExportService ConfigListener {
@FluxtionIgnore
private final InMemorySymbolLookup symbolLookup = new InMemorySymbolLookup();
private EventProcessorContext context;
private Logger erroLogger = LogManager.getLogger("com.fluxtion.pnl.error");
@Override
public void currentContext(EventProcessorContext currentContext) {
this.context = currentContext;
}
@ServiceRegistered
public void admin(AdminCommandRegistry registry) {
registry.registerCommand("resetPosition", this::resetPosition);
}
@Initialise
public void init() {
log.info("Initialising EventFeedConnector");
publishSignal(PnlCalculator.POSITION_SNAPSHOT_RESET);
publishSignal(PnlCalculator.POSITION_UPDATE_EOB);
}
@Override
public boolean initialConfig(ConfigMap config) {
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy