66 , hosts_(other.hosts_)
84 group_.controlAssignment(
"Port", port_, port);
94 const std::string&
ip()
const 106 group_.controlAssignment(
"IP Address", ip_, address);
190 const std::string&
id()
const 198 group_.controlAssignment(
"Identifier", id_,
id);
206 group_.controlChange(
"Feed Connection Settings", &FeedConnectionSettings::assignNoControl, *
this, other);
244 toStr(str, settings);
250 template <
typename Layout>
263 group_.controlAssignment(
"Layout", layout_, value);
276 return heartbeatInterval_;
282 group_.controlAssignment(
"Heartbeat Interval", heartbeatInterval_, interval);
311 #if !defined(ONIXS_CMEMDH_NO_DEPRECATED) 324 A_.networkInterfaces(interfaces);
340 B_.networkInterfaces(interfaces);
344 #endif // !ONIXS_CMEMDH_NO_DEPRECATED 355 , heartbeatInterval_(heartbeat)
369 , layout_(other.layout_)
370 , heartbeatInterval_(other.heartbeatInterval_)
391 layout_ = other.layout_;
393 heartbeatInterval_ = other.heartbeatInterval_;
395 A_.assignNoControl(other.A_);
396 B_.assignNoControl(other.B_);
403 UInt32 heartbeatInterval_;
442 FeedBWithFailoverToFeedA
476 :
Base(static_cast<const
Base&>(other))
486 group().controlChange(
487 "Multicast Recovery Feed Settings", &MulticastRecoveryFeedSettings::assignNoControl, *
this, other
500 Base::assignNoControl(other);
513 toStr(str, settings);
529 , connectionAttempts_(3)
530 , connectionTimeout_(500)
538 :
Base(static_cast<const
Base&>(other))
539 , connectionAttempts_(other.connectionAttempts_)
540 , connectionTimeout_(other.connectionTimeout_)
541 , sendTimeout_(other.sendTimeout_)
555 return connectionAttempts_;
563 group().controlAssignment(
"Connection Attempts", connectionAttempts_, attemptQty);
577 return connectionTimeout_;
587 group().controlAssignment(
"Connection Timeout", connectionTimeout_, connectionTimeout);
607 group().controlAssignment(
"Send Timeout", sendTimeout_, sendTimeout);
616 group().controlChange(
"TCP Recovery Feed Settings", &TcpRecoveryFeedSettings::assignNoControl, *
this, other);
627 UInt32 connectionAttempts_;
628 UInt32 connectionTimeout_;
633 Base::assignNoControl(other);
635 connectionAttempts_ = other.connectionAttempts_;
637 connectionTimeout_ = other.connectionTimeout_;
639 sendTimeout_ = other.sendTimeout_;
652 toStr(str, settings);
691 BothFeedsWithArbitrage
719 , outOfOrderPacketMaxInterval_(3)
720 , lostPacketWaitTime_(100000)
727 :
Base(static_cast<const
Base&>(other))
728 , outOfOrderPacketMaxInterval_(other.outOfOrderPacketMaxInterval_)
729 , lostPacketWaitTime_(other.lostPacketWaitTime_)
766 return outOfOrderPacketMaxInterval_;
773 group().controlAssignment(
"Out Of Order Packet Max Interval", outOfOrderPacketMaxInterval_, intervalLength);
801 return lostPacketWaitTime_;
808 group().controlAssignment(
"Lost Packet Wait Time", lostPacketWaitTime_, waitTime);
817 group().controlChange(
"Realtime Feed Settings", &RealtimeFeedSettings::assignNoControl, *
this, other);
827 UInt32 outOfOrderPacketMaxInterval_;
828 UInt32 lostPacketWaitTime_;
832 Base::assignNoControl(other);
834 outOfOrderPacketMaxInterval_ = other.outOfOrderPacketMaxInterval_;
836 lostPacketWaitTime_ = other.lostPacketWaitTime_;
849 toStr(str, settings);
902 , packetMaxSize_(1420)
903 , incrementalFeeds_(&group())
904 , instrumentFeeds_(&group())
905 , snapshotFeeds_(&group())
906 , mboSnapshotFeeds_(&group())
907 , historicalFeeds_(&group())
916 , packetMaxSize_(other.packetMaxSize_)
917 , incrementalFeeds_(other.incrementalFeeds_)
918 , instrumentFeeds_(other.instrumentFeeds_)
919 , snapshotFeeds_(other.snapshotFeeds_)
920 , mboSnapshotFeeds_(other.mboSnapshotFeeds_)
921 , historicalFeeds_(other.historicalFeeds_)
922 , engine_(other.engine_)
939 "Feed A Network Interfaces for All Feeds", &FeedSettings::assignFeedAInterfaces, *
this, interfaces
958 "Feed B Network Interfaces for All Feeds", &FeedSettings::assignFeedBInterfaces, *
this, interfaces
969 return packetMaxSize_;
983 return incrementalFeeds_;
989 return incrementalFeeds_;
995 return instrumentFeeds_;
1001 return instrumentFeeds_;
1007 return snapshotFeeds_;
1013 return snapshotFeeds_;
1019 return mboSnapshotFeeds_;
1025 return mboSnapshotFeeds_;
1031 return historicalFeeds_;
1037 return historicalFeeds_;
1044 return engine_.get();
1050 group().
controlAssignment(
"Feed Engine", engine_, NetFeedEngineController(engine));
1059 group().
controlChange(
"Feed Settings", &FeedSettings::assignNoControl, *
this, other);
1077 NetFeedEngineController();
1083 NetFeedEngineController(
const NetFeedEngineController&);
1086 ~NetFeedEngineController();
1089 NetFeedEngineController& operator=(
const NetFeedEngineController& other)
1091 NetFeedEngineController tmp(other);
1103 void swap(NetFeedEngineController& other)
1105 std::swap(engine_, other.engine_);
1106 std::swap(owned_, other.owned_);
1124 NetFeedEngineController engine_;
1138 packetMaxSize_ = other.packetMaxSize_;
1140 incrementalFeeds_.assignNoControl(other.incrementalFeeds_);
1142 instrumentFeeds_.assignNoControl(other.instrumentFeeds_);
1144 snapshotFeeds_.assignNoControl(other.snapshotFeeds_);
1146 mboSnapshotFeeds_.assignNoControl(other.mboSnapshotFeeds_);
1148 historicalFeeds_.assignNoControl(other.historicalFeeds_);
1150 engine_ = other.engine_;
1155 void assignFeedAInterfaces(
const std::string& interfaces)
1174 void assignFeedBInterfaces(
const std::string& interfaces)
1201 toStr(str, settings);
Feed B is used as primary source of market data.
FeedSettings & operator=(const FeedSettings &other)
Re-initializes the instance as a copy of the other one.
FeedConnectionSettings & hosts(const std::string &hosts)
Updates list of hosts for the given connection settings from a string representing comma or semi-colo...
~FeedConnectionSettings()
Finalizes the instance.
Handler's configuration settings.
FeedSettings & feedBNetworkInterfaces(const std::string &interfaces)
Specifies one or more network interfaces on which to join multicast groups referring to secondary (B)...
FeedConnectionSettings & id(const std::string &id)
Updates the connection/feed identifier.
HostListSetting & hosts()
Updates list of hosts for the given connection settings.
UInt32 connectionAttempts() const
Number of times the Handler must try recovering from the other feed if it fails to recover from the p...
MulticastRecoveryFeedSettings & operator=(const MulticastRecoveryFeedSettings &other)
Re-initializes the instance as a copy of the other one.
const TcpRecoveryFeedSettings & historicalFeeds() const
The settings related to historical (TCP recovery) feeds.
FeedSettings & feedANetworkInterfaces(const std::string &interfaces)
Specifies one or more network interfaces on which to join multicast groups referring to primary (A) f...
UInt32 Base
Integral type used as basement for constants.
To optimally service customers and meet regulatory requirements for out-of-region recovery capabiliti...
const FeedConnectionSettings & A() const
Connection attributes for the primary (A) feed.
const NifListSetting & networkInterfaces() const
List of network interfaces for the given connection settings.
FeedConnectionSettings & networkInterfaces(const std::string &interfaces)
Specifies one or more network interfaces on which to join the multicast group if the settings define ...
MulticastRecoveryFeedSettings(const MulticastRecoveryFeedSettings &other)
Initializes the instance as a copy of the other one.
ListSetting< std::string > HostListSetting
List of hosts as a setting.
TcpRecoveryFeedSettings & connectionTimeout(UInt32 connectionTimeout)
Interval between the attempts to receive missed packets via the TCP recovery feed if previous attempt...
const HostListSetting & hosts() const
Indicates host list of the given connection settings.
#define ONIXS_CMEMDH_NULLPTR
UInt32 ChannelId
Identifies CME channel.
Layout layout() const
Defines feed layout for a feed group.
UInt32 Base
Integral type used as basement for constants.
UInt32 port() const
Port component of the given connection settings.
FeedSettings(const FeedSettings &other)
Initializes the instance as a copy of the other one.
const RealtimeFeedSettings & incrementalFeeds() const
The settings related to incremental feeds.
Collection of parameters which are common for all types of feeds.
TcpRecoveryFeedSettings(const SettingGroup *group=nullptr)
Initializes instance with default values.
FeedConnectionSettings & ip(const std::string &address)
Updates address component of the given connection settings.
Indicates only feed B is used as source for market data.
UInt32 connectionTimeout() const
Interval between the attempts to receive missed packets via the TCP recovery feed if previous attempt...
TcpRecoveryFeedSettings & historicalFeeds()
The settings related to historical (TCP Recovery) feeds.
RealtimeFeedSettings(const RealtimeFeedSettings &other)
Initializes the instance as a copy of the other one.
Indicates the primary data center, which houses all CME applications.
#define ONIXS_CMEMDH_EXPORTED_CLASS_DECL(typeName)
#define ONIXS_CMEMDH_LTWT
const std::string & id() const
The unique connection/feed identifier.
UInt32 outOfOrderPacketMaxInterval() const
Defines a threshold used by the Handler while handling out-of-order incoming packets.
RealtimeFeedSettings & operator=(const RealtimeFeedSettings &other)
Re-initializes the instance as a copy of the other one.
Abstraction for the Feed Engine machinery.
Indicates only feed A is used as source for market data.
void controlAssignment(const Char *description, Assignee &assignee, Value value) const
Guarded assignment of the given value to the given variable.
FeedSettingsBase(const SettingGroup *group, Layout layout, UInt32 heartbeat)
Initializes the instance with the given values and optional grouping.
NifListSetting & networkInterfaces()
List of network interfaces for the given connection settings.
Defines feed layout alternates available for recovery feeds like instrument and snapshot.
Collection of parameters affecting real-time feeds behavior.
UInt32 lostPacketWaitTime() const
Indicates the time limit for the Handler while waiting for expected packets before they are considere...
FeedConnectionSettings & A()
Connection attributes for the primary (A) feed.
FeedConnectionSettings & port(UInt32 port)
Updates port number for the given connection settings.
FeedSettingsBase(const FeedSettingsBase &other)
Initializes the instance as a copy of the other one.
FeedSettingsBase & feedBNetworkInterfaces(const std::string &interfaces)
Specifies one or more network interfaces to use for secondary (B) feeds while joining the multicast g...
bool value(Number &number, const MultiContainer &container, Tag tag)
Finds a tag-value entry in the given collection by the given tag and returns its value component tran...
TcpRecoveryFeedSettings & operator=(const TcpRecoveryFeedSettings &other)
Re-initializes the instance as a copy of the other one.
MulticastRecoveryFeedSettings & snapshotFeeds()
The settings related to snapshot feeds.
FeedSettings(SettingChangeController *controller=nullptr)
Initializes the instance with the default values.
void assignNoControl(const FeedSettingsBase &other)
Re-initializes the instance as a copy of the other one without involving assignment control services...
std::string toStr(const FeedSettings &settings)
Serializes feed settings into string.
Enum
To optimally service customers and meet regulatory requirements for out-of-region recovery capabiliti...
~RealtimeFeedSettings()
Finalizes the instance.
Indicates only feed A is used as source for market data.
RealtimeFeedSettings & lostPacketWaitTime(UInt32 waitTime)
Defines the time limit for the Handler while waiting for expected packets before they considered as l...
HostListSetting NifListSetting
List of network interfaces as a setting.
FeedSettings & engine(NetFeedEngine *engine)
Defines instance of the Feed Engine to be used by the Handler.
~TcpRecoveryFeedSettings()
Finalizes the instance.
Feed A is used as primary source of market data.
const std::string & ip() const
Indicates address component of the given connection settings.
MulticastRecoveryFeedSettings(const SettingGroup *group=nullptr)
Initializes instance with default values.
#define ONIXS_CMEMDH_NAMESPACE_BEGIN
Base services for settings grouped by a certain criteria.
Indicates only feed B is used as source for market data.
RealtimeFeedSettings & outOfOrderPacketMaxInterval(UInt32 intervalLength)
Defines value of threshold used by the Handler while handling out-of-order incoming packets...
Collection of parameters affecting recovery feeds behavior.
NetFeedEngine * engine() const
Instance of the Feed Engine to be used by the Handler.
~MulticastRecoveryFeedSettings()
Finalizes the instance.
const SettingGroup & group() const
Instance of the group which the given settings belong to.
const MulticastRecoveryFeedSettings & mboSnapshotFeeds() const
The settings related to snapshot feeds.
void connectivityFromConfiguration(FeedSettings &, const std::string &, ChannelId, DataCenter::Enum=DataCenter::Primary)
Retrieves connection settings from the given connectivity configuration file for the given channel an...
#define ONIXS_CMEMDH_EXPORTED
TcpRecoveryFeedSettings(const TcpRecoveryFeedSettings &other)
Initializes the instance as a copy of the other one.
#define ONIXS_CMEMDH_LTWT_CLASS_DECL(name)
FeedConnectionSettings(const FeedConnectionSettings &other)
Initializes the given instance as a copy of the other one.
PacketSize packetMaxSize() const
Max size for network packet transmitted by MDP.
const MulticastRecoveryFeedSettings & snapshotFeeds() const
The settings related to snapshot feeds.
const FeedConnectionSettings & B() const
Connection attributes for the secondary (B) feed.
ListSetting & assignNoControl(const ListSetting &other)
Unmanaged assignment of the list.
const MulticastRecoveryFeedSettings & instrumentFeeds() const
The settings related to instrument feeds.
void fromStr(HostListSetting &, const std::string &)
Deserializes host list setting from a string.
FeedConnectionSettings & operator=(const FeedConnectionSettings &other)
Re-initializes the instance as a copy of the other one.
The parameters affecting all feeds involved into market data processing.
Represents a service controlling change/update operations for the collections of settings.
UInt32 sendTimeout() const
Time limit for the send operation.
RealtimeFeedSettings(const SettingGroup *group=nullptr)
Initializes instance with default values.
UInt32 Base
Integral type used as basement for constants.
FeedConnectionSettings & B()
Connection attributes for the secondary (B) feed.
Defines feed layout alternates available for real-time feed like incremental one. ...
TcpRecoveryFeedSettings & sendTimeout(UInt32 sendTimeout)
Time limit for the send operation.
FeedSettingsBase & feedANetworkInterfaces(const std::string &interfaces)
Specifies one or more network interfaces to use for primary (A) feeds while joining the multicast gro...
FeedSettingsBase & layout(Layout value)
Defines feed layout for recovery feed group.
MulticastRecoveryFeedSettings & instrumentFeeds()
The settings related to instrument feeds.
Feed A is used as primary source of market data.
FeedSettings & packetMaxSize(PacketSize value)
Max size for network packet transmitted by MDP.
UInt16 PacketSize
Integral type for measuring packets.
RealtimeFeedSettings & incrementalFeeds()
The settings related to incremental feeds.
FeedConnectionSettings(const SettingGroup *group=nullptr)
Initializes as a blank instance.
TcpRecoveryFeedSettings & connectionAttempts(UInt32 attemptQty)
Number of times the Handler must try recovering from the other feed if it fails to recover from the p...
FeedSettingsBase & heartbeatInterval(UInt32 interval)
Specifies maximal time interval between two packets.
UInt32 heartbeatInterval() const
Specifies maximal time interval between two network packets.
MulticastRecoveryFeedSettings & mboSnapshotFeeds()
The settings related to snapshot feeds.
void controlChange(const Char *description, void(Changeable::*change)(), Changeable &changeable) const
Guarded invoke of the given routine which assumes complex change or update for the given object...
Collection of parameters affecting recovery feeds behavior.
The collection of parameters defining feed connection.
#define ONIXS_CMEMDH_NAMESPACE_END