OnixS CBOE CSM Handler for C++  1.2.8.0
Replaying Log Files
Getting Started

The handler can be run in Log replaying mode, in that mode it will process packets that were recorded in a log file before.

class MyListener :
    public ErrorListener
    , public WarningListener
    , public ReplayListener
    , public SecurityDefinitionListener
    , public CurrentMarketListener
    , public OrderBookListener
    , public Level2Listener
    , public PacketDataListener
{
...
};

        HandlerSettings settings;
        settings.licenseDirectory = "../../license";
        settings.logDirectory     = "logs";
        settings.logLevel         = LogLevel::Debug;
        settings.buildInternalOrderBooks = true;
        settings.maxPacketWaitingTime = 0;

        ReplayOptions replayOptions;

#ifdef USE_CSM
        settings.templateFile = "../CSM_V1.3_template.xml";
        Handler handler (Handler::Csm, settings);
        handler.registerCurrentMarketListener (&listener);
        replayOptions.logs.push_back ("logToReplay/Combined.gz");
#endif

#ifdef USE_CSM_L2
        settings.templateFile = "../CSM_L2_V1.0_template.xml";
        Handler handler (Handler::CsmL2, settings);
        handler.registerLevel2Listener (&listener);
        replayOptions.logs.push_back ("logToReplay/Combined.L2.gz");
#endif

        handler.registerOrderBookListener (&listener);
        handler.registerErrorListener (&listener);
        handler.registerWarningListener (&listener);
        handler.registerSecurityDefinitionListener (&listener);
        handler.registerPacketDataListener (&listener);

        replayOptions.feedNames.push_back ("Line1");
        replayOptions.feedNames.push_back ("Line2");
        replayOptions.feedNames.push_back ("Line3");
        replayOptions.listener = &listener;

        clog << "Will start the Handler in replay log mode ..." << endl;
        handler.start (replayOptions);
Note:
More information can be found in Backtesting sample