OnixS C++ SGX Titan ITCH Market Data Handler  1.2.2
API documentation
RetransmissionPacketProcessor.h
Go to the documentation of this file.
1 /*
2 * Copyright Onix Solutions Limited [OnixS]. All rights reserved.
3 *
4 * This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law
5 * and international copyright treaties.
6 *
7 * Access to and use of the software is governed by the terms of the applicable ONIXS Software
8 * Services Agreement (the Agreement) and Customer end user license agreements granting
9 * a non-assignable, non-transferable and non-exclusive license to use the software
10 * for it's own data processing purposes under the terms defined in the Agreement.
11 *
12 * Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part
13 * of this source code or associated reference material to any other location for further reproduction
14 * or redistribution, and any amendments to this copyright notice, are expressly prohibited.
15 *
16 * Any reproduction or redistribution for sale or hiring of the Software not in accordance with
17 * the terms of the Agreement is a violation of copyright law.
18 */
19 #pragma once
20 
21 #include "NamespaceHelper.h"
22 
23 #include <OnixS/HandlerCore/MarketData/MulticastFeedHandler.h>
24 
25 #include <OnixS/HandlerCore/HandlerLogger.h>
26 
27 ONIXS_HANDLER_NAMESPACE_BEGIN
28 
29  class MessageRepository;
30 
31  class RetransmissionPacketProcessor : public OnixS::HandlerCore::MarketData::LogPlayerPacketProcessor, public Logging::LogFacility
32  {
33  public:
34  RetransmissionPacketProcessor(HandlerCore::Common::HandlerLogger* logger, const Logging::LogFacility* parent, MessageRepository* messageRepository);
36 
37  bool isReplayMode() const override { return true; };
38  void reset() override;
39  bool tryAcquire() override { return true; }
40  void release() override {}
41  void onTimeout(const OnixS::HandlerCore::MarketData::FE::NetFeed&) override {};
42  void onFailure(const OnixS::HandlerCore::MarketData::FE::NetFeed&, const char*) override {};
43  void onPacket(OnixS::HandlerCore::MarketData::FE::PacketContainer&) override;
44 
45  /// Log helper.
46  template<typename TMsg>
47  void log(const TMsg & msg) { if (logger_) logger_->log(msg); }
48 
49  private:
50  HandlerCore::Common::HandlerLogger* logger_;
51 
52  MessageRepository* messageRepository_;
53  };
54 
55 ONIXS_HANDLER_NAMESPACE_END
void onTimeout(const OnixS::HandlerCore::MarketData::FE::NetFeed &) override
void onFailure(const OnixS::HandlerCore::MarketData::FE::NetFeed &, const char *) override