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);