OnixS C++ CME MDP Premium Market Data Handler 5.10.3
Users' manual and API documentation
Loading...
Searching...
No Matches
FeedSettings.h
Go to the documentation of this file.
1// Copyright Onix Solutions Limited [OnixS]. All rights reserved.
2//
3// This software owned by Onix Solutions Limited [OnixS] and is
4// protected by copyright law and international copyright treaties.
5//
6// Access to and use of the software is governed by the terms of the applicable
7// OnixS Software Services Agreement (the Agreement) and Customer end user license
8// agreements granting a non-assignable, non-transferable and non-exclusive license
9// to use the software for it's own data processing purposes under the terms defined
10// in the Agreement.
11//
12// Except as otherwise granted within the terms of the Agreement, copying or
13// reproduction of any part of this source code or associated reference material
14// to any other location for further reproduction or redistribution, and any
15// amendments to this copyright notice, are expressly prohibited.
16//
17// Any reproduction or redistribution for sale or hiring of the Software not in
18// accordance with the terms of the Agreement is a violation of copyright law.
19//
20
21#pragma once
22
27
28#include <OnixS/CME/MDH/Auxiliary/DeprecatedHeaderWarnings.Disable.h>
30#include <OnixS/CME/MDH/Auxiliary/DeprecatedHeaderWarnings.Restore.h>
31
33
34// A bit of forward declarations.
35
37
40
43
46void fromStr(HostListSetting&, const std::string&);
47
50{
51public:
52 // Makes assignment more flexible.
53 template <class>
55
57 FeedConnectionSettings(const SettingGroup* group = nullptr)
58 : group_(group ? *group : SettingGroup::null())
59 , port_(0)
60 , hosts_(group)
61 , nifs_(group)
62 {
63 }
64
68 : group_(SettingGroup::null())
69 , port_(other.port_)
70 , ip_(other.ip_)
71 , hosts_(other.hosts_)
72 , nifs_(other.nifs_)
73 , id_(other.id_)
74 {
75 }
76
79
82 {
83 return port_;
84 }
85
88 {
89 group_.controlAssignment("Port", port_, port);
90
91 return *this;
92 }
93
99 const std::string& ip() const
100 {
101 return ip_;
102 }
103
109 FeedConnectionSettings& ip(const std::string& address)
110 {
111 group_.controlAssignment("IP Address", ip_, address);
112
113 return *this;
114 }
115
125 const HostListSetting& hosts() const
126 {
127 return hosts_;
128 }
129
140 {
141 return hosts_;
142 }
143
154 FeedConnectionSettings& hosts(const std::string& hosts)
155 {
156 fromStr(hosts_, hosts);
157
158 return *this;
159 }
160
167 {
168 return nifs_;
169 }
170
177 {
178 return nifs_;
179 }
180
187 FeedConnectionSettings& networkInterfaces(const std::string& interfaces)
188 {
189 fromStr(nifs_, interfaces);
190
191 return *this;
192 }
193
195 const std::string& id() const
196 {
197 return id_;
198 }
199
201 FeedConnectionSettings& id(const std::string& id)
202 {
203 group_.controlAssignment("Identifier", id_, id);
204
205 return *this;
206 }
207
210 {
211 group_.controlChange("Feed Connection Settings", &FeedConnectionSettings::assignNoControl, *this, other);
212
213 return *this;
214 }
215
216private:
217 const SettingGroup& group_;
218
219 Messaging::UInt32 port_;
220 std::string ip_;
221
222 HostListSetting hosts_;
223 NifListSetting nifs_;
224
225 std::string id_;
226
227 // Non-guarded assignment.
228 void assignNoControl(const FeedConnectionSettings& other)
229 {
230 port_ = other.port_;
231 ip_ = other.ip_;
232
233 hosts_.assignNoControl(other.hosts_);
234 nifs_.assignNoControl(other.nifs_);
235
236 id_ = other.id_;
237 }
238};
239
242void toStr(std::string&, const FeedConnectionSettings&);
243
245inline std::string toStr(const FeedConnectionSettings& settings)
246{
247 std::string str;
248
249 toStr(str, settings);
250
251 return str;
252}
253
255template <typename Layout>
257{
258public:
260 Layout layout() const
261 {
262 return layout_;
263 }
264
267 {
268 group_.controlAssignment("Layout", layout_, value);
269
270 return *this;
271 }
272
280 {
281 return heartbeatInterval_;
282 }
283
286 {
287 group_.controlAssignment("Heartbeat Interval", heartbeatInterval_, interval);
288
289 return *this;
290 }
291
294 {
295 return A_;
296 }
297
300 {
301 return A_;
302 }
303
306 {
307 return B_;
308 }
309
312 {
313 return B_;
314 }
315
316#if !defined(ONIXS_CMEMDH_NO_DEPRECATED)
317
327 FeedSettingsBase& feedANetworkInterfaces(const std::string& interfaces)
328 {
329 A_.networkInterfaces(interfaces);
330
331 return *this;
332 }
333
343 FeedSettingsBase& feedBNetworkInterfaces(const std::string& interfaces)
344 {
345 B_.networkInterfaces(interfaces);
346
347 return *this;
348 }
349#endif // !ONIXS_CMEMDH_NO_DEPRECATED
350
351protected:
352 // Makes assignment more flexible.
354
358 : group_(group ? *group : SettingGroup::null())
359 , layout_(layout)
360 , heartbeatInterval_(heartbeat)
361 , A_(group)
362 , B_(group)
363 {
364 }
365
373 : group_(SettingGroup::null())
374 , layout_(other.layout_)
375 , heartbeatInterval_(other.heartbeatInterval_)
376 , A_(other.A_)
377 , B_(other.B_)
378 {
379 }
380
381 // Finalizes the instance.
383
386 const SettingGroup& group() const
387 {
388 return group_;
389 }
390
395 {
396 layout_ = other.layout_;
397
398 heartbeatInterval_ = other.heartbeatInterval_;
399
400 A_.assignNoControl(other.A_);
401 B_.assignNoControl(other.B_);
402 }
403
404private:
405 const SettingGroup& group_;
406
407 Layout layout_;
408 Messaging::UInt32 heartbeatInterval_;
409
412
413 FeedSettingsBase& operator=(const FeedSettingsBase& other);
414};
415
450
453void toStr(std::string&, RecoveryFeedLayout::Enum);
454
456inline std::string toStr(RecoveryFeedLayout::Enum layout)
457{
458 std::string str;
459
460 toStr(str, layout);
461
462 return str;
463}
464
467{
468public:
475 : Base(group, RecoveryFeedLayout::FeedAWithFailoverToFeedB, 30)
476 {
477 }
478
481 : Base(static_cast<const Base&>(other))
482 {
483 }
484
487
490 {
491 group().controlChange(
492 "Multicast Recovery Feed Settings", &MulticastRecoveryFeedSettings::assignNoControl, *this, other
493 );
494
495 return *this;
496 }
497
498private:
500
502
503 void assignNoControl(const MulticastRecoveryFeedSettings& other)
504 {
506 }
507};
508
511void toStr(std::string&, const MulticastRecoveryFeedSettings&);
512
514inline std::string toStr(const MulticastRecoveryFeedSettings& settings)
515{
516 std::string str;
517
518 toStr(str, settings);
519
520 return str;
521}
522
524class ONIXS_CMEMDH_LTWT TcpRecoveryFeedSettings : public FeedSettingsBase<RecoveryFeedLayout::Enum>
525{
526public:
533 : Base(group, RecoveryFeedLayout::FeedAOnly, 2)
534 , connectionAttempts_(3)
535 , connectionTimeout_(500)
536 , sendTimeout_(5000)
537 {
538 }
539
543 : Base(static_cast<const Base&>(other))
544 , connectionAttempts_(other.connectionAttempts_)
545 , connectionTimeout_(other.connectionTimeout_)
546 , sendTimeout_(other.sendTimeout_)
547 {
548 }
549
552
559 {
560 return connectionAttempts_;
561 }
562
567 {
568 group().controlAssignment("Connection Attempts", connectionAttempts_, attemptQty);
569
570 return *this;
571 }
572
581 {
582 return connectionTimeout_;
583 }
584
591 {
592 group().controlAssignment("Connection Timeout", connectionTimeout_, connectionTimeout);
593
594 return *this;
595 }
596
603 {
604 return sendTimeout_;
605 }
606
611 {
612 group().controlAssignment("Send Timeout", sendTimeout_, sendTimeout);
613
614 return *this;
615 }
616
620 {
621 group().controlChange("TCP Recovery Feed Settings", &TcpRecoveryFeedSettings::assignNoControl, *this, other);
622
623 return *this;
624 }
625
626private:
627 // Makes assignment more flexible.
629
631
632 Messaging::UInt32 connectionAttempts_;
633 Messaging::UInt32 connectionTimeout_;
634 Messaging::UInt32 sendTimeout_;
635
636 void assignNoControl(const TcpRecoveryFeedSettings& other)
637 {
639
640 connectionAttempts_ = other.connectionAttempts_;
641
642 connectionTimeout_ = other.connectionTimeout_;
643
644 sendTimeout_ = other.sendTimeout_;
645 }
646};
647
650void toStr(std::string&, const TcpRecoveryFeedSettings&);
651
653inline std::string toStr(const TcpRecoveryFeedSettings& settings)
654{
655 std::string str;
656
657 toStr(str, settings);
658
659 return str;
660}
661
699
702void toStr(std::string&, RealtimeFeedLayout::Enum);
703
705inline std::string toStr(RealtimeFeedLayout::Enum layout)
706{
707 std::string str;
708
709 toStr(str, layout);
710
711 return str;
712}
713
715class ONIXS_CMEMDH_LTWT RealtimeFeedSettings : public FeedSettingsBase<RealtimeFeedLayout::Enum>
716{
717public:
723 : Base(group, RealtimeFeedLayout::BothFeedsWithArbitrage, 30)
724 , outOfOrderPacketMaxInterval_(3)
725 , lostPacketWaitTime_(100000)
726 {
727 }
728
732 : Base(static_cast<const Base&>(other))
733 , outOfOrderPacketMaxInterval_(other.outOfOrderPacketMaxInterval_)
734 , lostPacketWaitTime_(other.lostPacketWaitTime_)
735 {
736 }
737
740
770 {
771 return outOfOrderPacketMaxInterval_;
772 }
773
777 {
778 group().controlAssignment("Out Of Order Packet Max Interval", outOfOrderPacketMaxInterval_, intervalLength);
779
780 return *this;
781 }
782
805 {
806 return lostPacketWaitTime_;
807 }
808
812 {
813 group().controlAssignment("Lost Packet Wait Time", lostPacketWaitTime_, waitTime);
814
815 return *this;
816 }
817
821 {
822 group().controlChange("Realtime Feed Settings", &RealtimeFeedSettings::assignNoControl, *this, other);
823
824 return *this;
825 }
826
827private:
829
831
832 Messaging::UInt32 outOfOrderPacketMaxInterval_;
833 Messaging::UInt32 lostPacketWaitTime_;
834
835 void assignNoControl(const RealtimeFeedSettings& other)
836 {
838
839 outOfOrderPacketMaxInterval_ = other.outOfOrderPacketMaxInterval_;
840
841 lostPacketWaitTime_ = other.lostPacketWaitTime_;
842 }
843};
844
847void toStr(std::string&, const RealtimeFeedSettings&);
848
850inline std::string toStr(const RealtimeFeedSettings& settings)
851{
852 std::string str;
853
854 toStr(str, settings);
855
856 return str;
857}
858
884
887void toStr(std::string&, DataCenter::Enum);
888
890inline std::string toStr(DataCenter::Enum layout)
891{
892 std::string str;
893
894 toStr(str, layout);
895
896 return str;
897}
898
902{
903public:
906 : SettingGroup(controller)
907 , packetMaxSize_(1420)
908 , incrementalFeeds_(&group())
909 , instrumentFeeds_(&group())
910 , snapshotFeeds_(&group())
911 , mboSnapshotFeeds_(&group())
912 , historicalFeeds_(&group())
913 , engine_()
914 {
915 }
916
920 : SettingGroup()
921 , packetMaxSize_(other.packetMaxSize_)
922 , incrementalFeeds_(other.incrementalFeeds_)
923 , instrumentFeeds_(other.instrumentFeeds_)
924 , snapshotFeeds_(other.snapshotFeeds_)
925 , mboSnapshotFeeds_(other.mboSnapshotFeeds_)
926 , historicalFeeds_(other.historicalFeeds_)
927 , engine_(other.engine_)
928 {
929 }
930
941 FeedSettings& feedANetworkInterfaces(const std::string& interfaces)
942 {
943 group().controlChange(
944 "Feed A Network Interfaces for All Feeds", &FeedSettings::assignFeedAInterfaces, *this, interfaces
945 );
946
947 return *this;
948 }
949
960 FeedSettings& feedBNetworkInterfaces(const std::string& interfaces)
961 {
962 group().controlChange(
963 "Feed B Network Interfaces for All Feeds", &FeedSettings::assignFeedBInterfaces, *this, interfaces
964 );
965
966 return *this;
967 }
968
973 {
974 return packetMaxSize_;
975 }
976
979 {
980 group().controlAssignment("Packet Max Size", packetMaxSize_, value);
981
982 return *this;
983 }
984
987 {
988 return incrementalFeeds_;
989 }
990
993 {
994 return incrementalFeeds_;
995 }
996
999 {
1000 return instrumentFeeds_;
1001 }
1002
1005 {
1006 return instrumentFeeds_;
1007 }
1008
1011 {
1012 return snapshotFeeds_;
1013 }
1014
1017 {
1018 return snapshotFeeds_;
1019 }
1020
1023 {
1024 return mboSnapshotFeeds_;
1025 }
1026
1029 {
1030 return mboSnapshotFeeds_;
1031 }
1032
1035 {
1036 return historicalFeeds_;
1037 }
1038
1041 {
1042 return historicalFeeds_;
1043 }
1044
1048 {
1049 return engine_.get();
1050 }
1051
1054 {
1055 group().controlAssignment("Feed Engine", engine_, NetFeedEngineController(engine));
1056
1057 return *this;
1058 }
1059
1063 {
1064 group().controlChange("Feed Settings", &FeedSettings::assignNoControl, *this, other);
1065
1066 return *this;
1067 }
1068
1069private:
1071
1072 // To let assignment be controlled
1073 // by the master container.
1075
1078 class ONIXS_CMEMDH_EXPORTED NetFeedEngineController
1079 {
1080 public:
1082 NetFeedEngineController();
1083
1085 explicit NetFeedEngineController(NetFeedEngine*);
1086
1088 NetFeedEngineController(const NetFeedEngineController&);
1089
1091 ~NetFeedEngineController();
1092
1094 NetFeedEngineController& operator=(const NetFeedEngineController& other)
1095 {
1096 NetFeedEngineController tmp(other);
1097 tmp.swap(*this);
1098 return *this;
1099 }
1100
1102 NetFeedEngine* get() const
1103 {
1104 return engine_;
1105 }
1106
1108 void swap(NetFeedEngineController& other)
1109 {
1110 std::swap(engine_, other.engine_);
1111 std::swap(owned_, other.owned_);
1112 }
1113
1114 private:
1115 NetFeedEngine* engine_;
1116 bool owned_;
1117 };
1118
1119 PacketSize packetMaxSize_;
1120
1121 RealtimeFeedSettings incrementalFeeds_;
1122
1123 MulticastRecoveryFeedSettings instrumentFeeds_;
1124 MulticastRecoveryFeedSettings snapshotFeeds_;
1125 MulticastRecoveryFeedSettings mboSnapshotFeeds_;
1126
1127 TcpRecoveryFeedSettings historicalFeeds_;
1128
1129 NetFeedEngineController engine_;
1130
1131 // Casts the given instance to an
1132 // instance of SettingGroup class.
1133 const SettingGroup& group() const
1134 {
1135 return *this;
1136 }
1137
1138 // Re-initializes the given instance
1139 // as a copy of the other one without
1140 // involving assignment control service.
1141 void assignNoControl(const FeedSettings& other)
1142 {
1143 packetMaxSize_ = other.packetMaxSize_;
1144
1145 incrementalFeeds_.assignNoControl(other.incrementalFeeds_);
1146
1147 instrumentFeeds_.assignNoControl(other.instrumentFeeds_);
1148
1149 snapshotFeeds_.assignNoControl(other.snapshotFeeds_);
1150
1151 mboSnapshotFeeds_.assignNoControl(other.mboSnapshotFeeds_);
1152
1153 historicalFeeds_.assignNoControl(other.historicalFeeds_);
1154
1155 engine_ = other.engine_;
1156 }
1157
1158 // Updates interfaces for all primary feeds
1159 // without involving assignment control services.
1160 void assignFeedAInterfaces(const std::string& interfaces)
1161 {
1162 NifListSetting nifs;
1163
1164 fromStr(nifs, interfaces);
1165
1166 incrementalFeeds_.A().networkInterfaces().assignNoControl(nifs);
1167
1168 instrumentFeeds_.A().networkInterfaces().assignNoControl(nifs);
1169
1170 snapshotFeeds_.A().networkInterfaces().assignNoControl(nifs);
1171
1172 mboSnapshotFeeds_.A().networkInterfaces().assignNoControl(nifs);
1173
1174 historicalFeeds_.A().networkInterfaces().assignNoControl(nifs);
1175 }
1176
1177 // Updates interfaces for all primary feeds
1178 // without involving assignment control services.
1179 void assignFeedBInterfaces(const std::string& interfaces)
1180 {
1181 NifListSetting nifs;
1182
1183 fromStr(nifs, interfaces);
1184
1185 incrementalFeeds_.B().networkInterfaces().assignNoControl(nifs);
1186
1187 instrumentFeeds_.B().networkInterfaces().assignNoControl(nifs);
1188
1189 snapshotFeeds_.B().networkInterfaces().assignNoControl(nifs);
1190
1191 mboSnapshotFeeds_.B().networkInterfaces().assignNoControl(nifs);
1192
1193 historicalFeeds_.B().networkInterfaces().assignNoControl(nifs);
1194 }
1195};
1196
1199void toStr(std::string&, const FeedSettings&);
1200
1202inline std::string toStr(const FeedSettings& settings)
1203{
1204 std::string str;
1205
1206 toStr(str, settings);
1207
1208 return str;
1209}
1210
1220 FeedSettings&,
1221 const std::string&,
1222 ChannelId,
1224);
1225
#define ONIXS_CMEMDH_NAMESPACE_BEGIN
Definition Bootstrap.h:54
#define ONIXS_CMEMDH_LTWT
Definition Bootstrap.h:46
#define ONIXS_CMEMDH_LTWT_CLASS_DECL(name)
Definition Bootstrap.h:48
#define ONIXS_CMEMDH_EXPORTED_CLASS_DECL(typeName)
Definition Bootstrap.h:35
#define ONIXS_CMEMDH_NAMESPACE_END
Definition Bootstrap.h:55
#define ONIXS_CMEMDH_EXPORTED
Definition Compiler.h:148
The collection of parameters defining feed connection.
FeedConnectionSettings & ip(const std::string &address)
const std::string & id() const
The unique connection/feed identifier.
FeedConnectionSettings & operator=(const FeedConnectionSettings &other)
Re-initializes the instance as a copy of the other one.
FeedConnectionSettings(const FeedConnectionSettings &other)
~FeedConnectionSettings()
Finalizes the instance.
const std::string & ip() const
const HostListSetting & hosts() const
FeedConnectionSettings(const SettingGroup *group=nullptr)
Initializes as a blank instance.
FeedConnectionSettings & port(Messaging::UInt32 port)
Updates port number for the given connection settings.
FeedConnectionSettings & networkInterfaces(const std::string &interfaces)
Messaging::UInt32 port() const
Port component of the given connection settings.
const NifListSetting & networkInterfaces() const
FeedConnectionSettings & hosts(const std::string &hosts)
FeedConnectionSettings & id(const std::string &id)
Updates the connection/feed identifier.
Collection of parameters which are common for all types of feeds.
const FeedConnectionSettings & B() const
Connection attributes for the secondary (B) feed.
void assignNoControl(const FeedSettingsBase &other)
Layout layout() const
Defines feed layout for a feed group.
FeedSettingsBase(const SettingGroup *group, Layout layout, Messaging::UInt32 heartbeat)
Messaging::UInt32 heartbeatInterval() const
const FeedConnectionSettings & A() const
Connection attributes for the primary (A) feed.
FeedSettingsBase & heartbeatInterval(Messaging::UInt32 interval)
Specifies maximal time interval between two packets.
FeedConnectionSettings & B()
Connection attributes for the secondary (B) feed.
FeedSettingsBase & layout(Layout value)
Defines feed layout for recovery feed group.
FeedConnectionSettings & A()
Connection attributes for the primary (A) feed.
FeedSettingsBase(const FeedSettingsBase &other)
FeedSettings(SettingChangeController *controller=nullptr)
Initializes the instance with the default values.
RealtimeFeedSettings & incrementalFeeds()
The settings related to incremental feeds.
NetFeedEngine * engine() const
FeedSettings(const FeedSettings &other)
FeedSettings & feedANetworkInterfaces(const std::string &interfaces)
const MulticastRecoveryFeedSettings & instrumentFeeds() const
The settings related to instrument feeds.
FeedSettings & packetMaxSize(PacketSize value)
Max size for network packet transmitted by MDP.
FeedSettings & engine(NetFeedEngine *engine)
Defines instance of the Feed Engine to be used by the Handler.
TcpRecoveryFeedSettings & historicalFeeds()
The settings related to historical (TCP Recovery) feeds.
PacketSize packetMaxSize() const
FeedSettings & feedBNetworkInterfaces(const std::string &interfaces)
const MulticastRecoveryFeedSettings & snapshotFeeds() const
The settings related to snapshot feeds.
const RealtimeFeedSettings & incrementalFeeds() const
The settings related to incremental feeds.
MulticastRecoveryFeedSettings & instrumentFeeds()
The settings related to instrument feeds.
FeedSettings & operator=(const FeedSettings &other)
const MulticastRecoveryFeedSettings & mboSnapshotFeeds() const
The settings related to snapshot feeds.
MulticastRecoveryFeedSettings & snapshotFeeds()
The settings related to snapshot feeds.
MulticastRecoveryFeedSettings & mboSnapshotFeeds()
The settings related to snapshot feeds.
const TcpRecoveryFeedSettings & historicalFeeds() const
The settings related to historical (TCP recovery) feeds.
Represents a setting which is a list of values.
ListSetting & assignNoControl(const ListSetting &other)
Collection of parameters affecting recovery feeds behavior.
MulticastRecoveryFeedSettings(const SettingGroup *group=nullptr)
~MulticastRecoveryFeedSettings()
Finalizes the instance.
MulticastRecoveryFeedSettings & operator=(const MulticastRecoveryFeedSettings &other)
Re-initializes the instance as a copy of the other one.
MulticastRecoveryFeedSettings(const MulticastRecoveryFeedSettings &other)
Initializes the instance as a copy of the other one.
Collection of parameters affecting real-time feeds behavior.
RealtimeFeedSettings(const RealtimeFeedSettings &other)
RealtimeFeedSettings & outOfOrderPacketMaxInterval(Messaging::UInt32 intervalLength)
~RealtimeFeedSettings()
Finalizes the instance.
RealtimeFeedSettings & lostPacketWaitTime(Messaging::UInt32 waitTime)
RealtimeFeedSettings & operator=(const RealtimeFeedSettings &other)
Messaging::UInt32 outOfOrderPacketMaxInterval() const
RealtimeFeedSettings(const SettingGroup *group=nullptr)
Messaging::UInt32 lostPacketWaitTime() const
Base services for settings grouped by a certain criteria.
SettingGroup(SettingChangeController *controller=nullptr)
void controlChange(const Messaging::Char *description, void(Changeable::*change)(), Changeable &changeable) const
void controlAssignment(const Messaging::Char *description, Assignee &assignee, Value value) const
Collection of parameters affecting recovery feeds behavior.
TcpRecoveryFeedSettings & operator=(const TcpRecoveryFeedSettings &other)
TcpRecoveryFeedSettings & sendTimeout(Messaging::UInt32 sendTimeout)
~TcpRecoveryFeedSettings()
Finalizes the instance.
Messaging::UInt32 connectionTimeout() const
TcpRecoveryFeedSettings & connectionTimeout(Messaging::UInt32 connectionTimeout)
Messaging::UInt32 connectionAttempts() const
TcpRecoveryFeedSettings & connectionAttempts(Messaging::UInt32 attemptQty)
TcpRecoveryFeedSettings(const SettingGroup *group=nullptr)
TcpRecoveryFeedSettings(const TcpRecoveryFeedSettings &other)
Messaging::UInt32 sendTimeout() const
bool fromStr(Int8 &, const Char *, size_t)
std::uint32_t UInt32
uInt32.
Definition Integral.h:35
ListSetting< std::string > HostListSetting
List of hosts as a setting.
void connectivityFromConfiguration(FeedSettings &, const std::string &, ChannelId, DataCenter::Enum=DataCenter::Primary)
void fromStr(NifList &, const std::string &, const std::string &=std::string("; ,"))
Messaging::UInt32 ChannelId
Identifies CME channel.
Definition Domain.h:28
void toStr(std::string &, BookState::Enum)
Serializes book state value into a string.
HostListSetting NifListSetting
List of network interfaces as a setting.
Messaging::UInt16 PacketSize
Integral type for measuring packets.
@ DisasterRecovery
Indicates data center used in case of disaster.
Messaging::UInt32 Base
Integral type used as basement for constants.
@ FeedBOnly
Indicates only feed B is used as source for market data.
@ BothFeedsWithArbitrage
Handler arbitrates between both feeds A and B.
@ FeedAOnly
Indicates only feed A is used as source for market data.
Messaging::UInt32 Base
Integral type used as basement for constants.
@ FeedBOnly
Indicates only feed B is used as source for market data.
@ FeedAOnly
Indicates only feed A is used as source for market data.
Messaging::UInt32 Base
Integral type used as basement for constants.