<?xml version="1.0" encoding="UTF-8"?> <EmaConfig> <!-- ConsumerGroup provides set of detailed configurations to be used by named consumers --> <!-- Application specifies which configuration to use by setting OmmConsumerConfig::consumerName() --> <ConsumerGroup> <!-- DefaultConsumer parameter defines which consumer configuration is used by OmmConsumer --> <!-- if application does not specify it through OmmConsumerConfig::consumerName() --> <!-- first consumer on the ConsumerList is a DefaultConsumer if this parameter is not specified --> <DefaultConsumer value="Consumer_1"/> <ConsumerList> <Consumer> <!-- Name is mandatory --> <Name value="Consumer_1"/> <!-- Channel is optional: defaulted to "RSSL_SOCKET + localhost + 14002" --> <!-- Channel or ChannelSet may be specified --> <Channel value="Channel_1"/> <!-- Logger is optional: defaulted to "File + Success" --> <Logger value="Logger_1"/> <!-- Dictionary is optional: defaulted to "ChannelDictionary" --> <Dictionary value="Dictionary_1"/> <XmlTraceToStdout value="0"/> </Consumer> <Consumer> <Name value="Consumer_2"/> <!-- ChannelSet specifies an ordered list of Channels to which OmmConsumer will attempt to --> <!-- connect, one at a time, if the previous one fails to connect --> <ChannelSet value="Channel_1, Channel_2"/> <Logger value="Logger_2"/> <Dictionary value="Dictionary_2"/> <XmlTraceToStdout value="0"/> </Consumer> <Consumer> <Name value="Consumer_3"/> <!-- Channel set to "RSSL_ENCRYPTED" --> <Channel value="Channel_3"/> <Logger value="Logger_2"/> <!-- Dictionary is optional: defaulted to "ChannelDictionary" --> <Dictionary value="Dictionary_1"/> <XmlTraceToStdout value="0"/> </Consumer> <Consumer> <Name value="Consumer_4"/> <!-- ChannelSet specifies an ordered list of Channels to which OmmConsumer will attempt to --> <!-- connect, one at a time, if the previous one fails to connect --> <ChannelSet value="Channel_4"/> <Logger value="Logger_1"/> <Dictionary value="Dictionary_1"/> <XmlTraceToStdout value="0"/> </Consumer> <Consumer> <Name value="Consumer_5"/> <!-- Channel is specified to provide RSSL_WEBSOCKET connection options --> <Channel value="Channel_5"/> <Logger value="Logger_1"/> <Dictionary value="Dictionary_2"/> <XmlTraceToStdout value="0"/> </Consumer> <Consumer> <!-- Name is mandatory --> <Name value="Consumer_6"/> <Channel value="Channel_6"/> <!-- Logger is optional: defaulted to "File + Success" --> <Logger value="Logger_1"/> <!-- Dictionary is optional: defaulted to "ChannelDictionary" --> <Dictionary value="Dictionary_1"/> <XmlTraceToStdout value="0"/> <DefaultServiceID value="1"/> </Consumer> <!-- Consumer with enabled RTT feature --> <Consumer> <Name value="Consumer_7"/> <Channel value="Channel_1"/> <Logger value="Logger_1"/> <Dictionary value="Dictionary_2"/> <XmlTraceToStdout value="0"/> <DefaultServiceID value="1"/> <EnableRtt value="1"/> </Consumer> <!-- Performance tools consumers --> <Consumer> <Name value="Perf_Consumer_1"/> <Channel value="Perf_Channel_1"/> <Logger value="Logger_1"/> <Dictionary value="Dictionary_1"/> <MaxDispatchCountApiThread value="6500"/> <MaxDispatchCountUserThread value="6500"/> </Consumer> <Consumer> <Name value="Perf_Consumer_2"/> <Channel value="Perf_Channel_1"/> <Logger value="Logger_1"/> <Dictionary value="Dictionary_2"/> <MaxDispatchCountApiThread value="6500"/> <MaxDispatchCountUserThread value="6500"/> </Consumer> <Consumer> <Name value="Perf_Consumer_WSJSON_1"/> <!-- Use the "Perf_Consumer_WSJSON_1" to select EncryptedProtocolType::RSSL_WEBSOCKET --> <ChannelSet value="Perf_Channel_WSJSON_1"/> <Logger value="Logger_1"/> <Dictionary value="Dictionary_2"/> <XmlTraceToStdout value="0"/> </Consumer> <Consumer> <Name value="Perf_Consumer_WSRWF_1"/> <Channel value="Perf_Channel_WSRWF_1"/> <Logger value="Logger_1"/> <Dictionary value="Dictionary_1"/> <XmlTraceToStdout value="0"/> </Consumer> </ConsumerList> </ConsumerGroup> <!-- NiProviderGroup provides set of detailed configurations to be used by named providers --> <!-- Application specifies which configuration to use by setting OmmNiProviderConfig::providerName() --> <NiProviderGroup> <!-- DefaultNiProvider parameter defines which provider configuration is used by OmmProvider --> <!-- if application does not specify it through OmmNiProviderConfig::providerName() --> <!-- first provider on the NiProviderList is a DefaultNiProvider if this parameter is not specified --> <DefaultNiProvider value="Provider_1"/> <NiProviderList> <!-- Regular providers --> <NiProvider> <!-- Name is mandatory --> <Name value="Provider_1"/> <!-- Channel is optional: defaulted to "RSSL_SOCKET + localhost + 14003" --> <Channel value="Channel_7"/> <!-- Directory is optional. --> <!-- the EMA provides hardcoded directory containing a single service named "NI_PUB". --> <!-- the EMA defaults the OmmNiProviderConfig::adminControlDirectory() to ApiControlEnum. --> <!-- the applications may just use the hardcoded "NI_PUB" service to publish all the items. --> <!-- if desired, a custom directory may be configured, named and used instead of the --> <!-- hardcoded one. Please see examples in the DirectoryGroup. --> <!-- the directory may also be specified using OmmNiProviderConfig::addAdminMsg(). --> <!-- if desired the OmmNiProviderConfig::adminControlDirectory() to UserControlEnum --> <!-- which allows applications to specify and control the directory. --> <Directory value="Directory_1"/> <Logger value="Logger_1"/> <XmlTraceToStdout value="0"/> </NiProvider> <NiProvider> <Name value="Provider_2"/> <Channel value="Channel_6"/> <Directory value="Directory_2"/> <Logger value="Logger_1"/> <XmlTraceToStdout value="0"/> </NiProvider> <NiProvider> <Name value="Provider_3"/> <Channel value="Channel_6"/> <Directory value="Directory_3"/> <Logger value="Logger_1"/> </NiProvider> <NiProvider> <Name value="Provider_4"/> <Channel value="Channel_7"/> <Directory value="Directory_1"/> <Logger value="Logger_1"/> <XmlTraceToStdout value="0"/> </NiProvider> <!-- Performance tools niprovider --> <NiProvider> <Name value="Perf_NIProvider_1"/> <Channel value="Perf_NIP_Channel_1"/> <Directory value="Perf_Directory_1"/> <Logger value="Logger_1"/> <XmlTraceToStdout value="0"/> <ItemCountHint value="100000"/> <MaxDispatchCountApiThread value="500"/> <MaxDispatchCountUserThread value="500"/> </NiProvider> </NiProviderList> </NiProviderGroup> <!-- IProviderGroup provides set of detailed configurations to be used by named providers --> <!-- Application specifies which configuration to use by setting OmmIProviderConfig::providerName() --> <IProviderGroup> <!-- DefaultIProvider parameter defines which provider configuration is used by OmmProvider --> <!-- if application does not specify it through OmmIProviderConfig::providerName() --> <!-- first provider on the IProviderList is a default provider if this parameter is not specified --> <DefaultIProvider value="Provider_1"/> <IProviderList> <IProvider> <!-- Name is mandatory --> <Name value="Provider_1"/> <!-- Server is optional: defaulted to "RSSL_SOCKET + 14002" --> <Server value="Server_1"/> <!-- Directory is optional: defaulted to AdminControl::UserControlEnum --> <!-- source directory configuration to use if OmmIProviderConfig::adminModel() --> <!-- was set to ApiControlEnum --> <!-- this configuration also decides which dictionaries will be loaded at startup --> <!-- this configuration may be overwritten by OmmIProviderConfig::addAdminMsg() --> <Directory value="Directory_2"/> <Logger value="Logger_1"/> <ItemCountHint value="10000"/> <ServiceCountHint value="10000" /> <DispatchTimeoutApiThread value="500" /> <CatchUnhandledException value="0" /> <MaxDispatchCountApiThread value="500" /> <MaxDispatchCountUserThread value="500" /> <PipePort value="9009" /> <RefreshFirstRequired value="1" /> </IProvider> <IProvider> <!-- Name is mandatory --> <Name value="Provider_2"/> <!-- Server is optional: now it specifies RSSL_WEBSOCKET connection options --> <Server value="Server_2"/> <!-- Directory is optional: defaulted to AdminControl::UserControlEnum --> <!-- source directory configuration to use if OmmIProviderConfig::adminModel() --> <!-- was set to ApiControlEnum --> <!-- this configuration also decides which dictionaries will be loaded at startup --> <!-- this configuration may be overwritten by OmmIProviderConfig::addAdminMsg() --> <Directory value="Directory_2"/> <Logger value="Logger_1"/> <ItemCountHint value="10000"/> <ServiceCountHint value="10000" /> <DispatchTimeoutApiThread value="500" /> <CatchUnhandledException value="0" /> <MaxDispatchCountApiThread value="500" /> <MaxDispatchCountUserThread value="500" /> <PipePort value="9009" /> <RefreshFirstRequired value="1" /> <DefaultServiceID value="1"/> </IProvider> <IProvider> <!-- Name is mandatory --> <Name value="Provider_3"/> <!-- Server is optional: now it specifies RSSL_WEBSOCKET connection options --> <Server value="Server_2"/> <!-- Directory is optional: defaulted to AdminControl::UserControlEnum --> <!-- source directory configuration to use if OmmIProviderConfig::adminModel() --> <!-- was set to ApiControlEnum --> <!-- this configuration also decides which dictionaries will be loaded at startup --> <!-- this configuration may be overwritten by OmmIProviderConfig::addAdminMsg() --> <Directory value="Directory_2"/> <Logger value="Logger_1"/> <ItemCountHint value="10000"/> <ServiceCountHint value="10000" /> <DispatchTimeoutApiThread value="500" /> <CatchUnhandledException value="0" /> <MaxDispatchCountApiThread value="500" /> <MaxDispatchCountUserThread value="500" /> <PipePort value="9009" /> <RefreshFirstRequired value="1" /> </IProvider> <!-- Performance tools provider --> <IProvider> <Name value="Perf_Provider_1"/> <Server value="Perf_Server_1"/> <Directory value="Directory_2"/> <Logger value="Logger_1"/> <ItemCountHint value="100000"/> <ServiceCountHint value="10000"/> <CatchUnhandledException value="0"/> <MaxDispatchCountApiThread value="500"/> <MaxDispatchCountUserThread value="500"/> <RefreshFirstRequired value="1"/> </IProvider> </IProviderList> </IProviderGroup> <ChannelGroup> <ChannelList> <Channel> <Name value="Channel_1"/> <!-- ChannelType possible values are: --> <!-- ChannelType::RSSL_SOCKET - TCP IP connection type --> <!-- ChannelType::RSSL_HTTP - Http tunnel connection type --> <!-- ChannelType::RSSL_ENCRYPTED - Https tunnel connection type --> <!-- ChannelType::RSSL_RELIABLE_MCAST - Reliable multicast connection type --> <ChannelType value="ChannelType::RSSL_SOCKET"/> <!-- CompressionType is optional: defaulted to None --> <!-- possible values: None, ZLib, LZ4 --> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <!-- ConnectionPingTimeout is optional: defaulted to 30000 --> <ConnectionPingTimeout value="30000"/> <!-- TcpNodelay is optional: defaulted to 1 --> <!-- possible values: 1 (tcp_nodelay option set), 0 (tcp_nodelay not set) --> <TcpNodelay value="1"/> <Host value="localhost"/> <Port value="14002"/> </Channel> <Channel> <Name value="Channel_2"/> <ChannelType value="ChannelType::RSSL_SOCKET"/> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <Host value="localhost"/> <Port value="14002"/> </Channel> <Channel> <Name value="Channel_3"/> <ChannelType value="ChannelType::RSSL_ENCRYPTED"/> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <Host value="localhost"/> <Port value="14002"/> <!-- ObjectName is optional: defaulted to "" --> <ObjectName value=""/> </Channel> <Channel> <Name value="Channel_4"/> <ChannelType value="ChannelType::RSSL_ENCRYPTED"/> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <!-- EMA discovers a host and a port from RDP service discovery for the specified location when both of them are not set and the session management is enable. --> <Location value="us-east-1"/> <EnableSessionManagement value="1"/> <EncryptedProtocolType value="EncryptedProtocolType::RSSL_SOCKET"/> <!-- ObjectName is optional: defaulted to "" --> <ObjectName value=""/> </Channel> <Channel> <Name value="Channel_5"/> <ChannelType value="ChannelType::RSSL_ENCRYPTED"/> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <ConnectionPingTimeout value="30000"/> <TcpNodelay value="1"/> <WsMaxMsgSize value="61440"/> <Location value="us-east-1"/> <EnableSessionManagement value="1"/> <EncryptedProtocolType value="EncryptedProtocolType::RSSL_WEBSOCKET"/> <WsProtocols value="tr_json2"/> </Channel> <Channel> <Name value="Channel_6"/> <ChannelType value="ChannelType::RSSL_WEBSOCKET"/> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <Host value="localhost"/> <Port value="15000"/> <WsMaxMsgSize value="61440"/> <WsProtocols value="rssl.json.v2, rssl.rwf, tr_json2"/> </Channel> <Channel> <Name value="Channel_7"/> <ChannelType value="ChannelType::RSSL_SOCKET"/> <GuaranteedOutputBuffers value="5000"/> <ConnectionPingTimeout value="30000"/> <TcpNodelay value="1"/> <Host value="localhost"/> <Port value="14003"/> </Channel> <Channel> <Name value="Channel_8"/> <ChannelType value="ChannelType::RSSL_HTTP"/> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <Host value="localhost"/> <Port value="14003"/> <ObjectName value=""/> </Channel> <Channel> <Name value="Channel_9"/> <ChannelType value="ChannelType::RSSL_ENCRYPTED"/> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <Host value="localhost"/> <Port value="14003"/> <!-- ObjectName is optional: defaulted to "" --> <ObjectName value=""/> </Channel> <Channel> <Name value="Channel_10"/> <ChannelType value="ChannelType::RSSL_RELIABLE_MCAST"/> <RecvAddress value="2**.*.*.*"/> <RecvPort value="15008"/> <SendAddress value="2**.*.*.*"/> <SendPort value="15007"/> <UnicastPort value="40102"/> <InterfaceName value="localhost"/> </Channel> <!--Performance tools channels --> <Channel> <Name value="Perf_Channel_WSJSON_1"/> <ChannelType value="ChannelType::RSSL_ENCRYPTED"/> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <!-- EMA discovers a host and a port from RDP service discovery for the specified location when both of them are not set and the session management is enable. --> <Location value="us-east-1"/> <EnableSessionManagement value="1"/> <EncryptedProtocolType value="EncryptedProtocolType::RSSL_WEBSOCKET"/> <WsMaxMsgSize value="61440"/> <WsProtocols value="tr_json2"/> <!-- ObjectName is optional: defaulted to "" --> <ObjectName value=""/> </Channel> <Channel> <Name value="Perf_Channel_WSRWF_1"/> <ChannelType value="ChannelType::RSSL_WEBSOCKET"/> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <ConnectionPingTimeout value="30000"/> <TcpNodelay value="1"/> <Host value="localhost"/> <Port value="14002"/> <WsMaxMsgSize value="61440"/> <WsProtocols value="rssl.rwf"/> </Channel> <Channel> <Name value="Perf_Channel_1"/> <ChannelType value="ChannelType::RSSL_SOCKET"/> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <NumInputBuffers value="2048"/> <ConnectionPingTimeout value="30000"/> <TcpNodelay value="1"/> <Host value="localhost"/> <Port value="14002"/> </Channel> <Channel> <Name value="Perf_Channel_2"/> <ChannelType value="ChannelType::RSSL_SOCKET"/> <GuaranteedOutputBuffers value="100000"/> <ConnectionPingTimeout value="30000"/> <TcpNodelay value="0"/> <Host value="localhost"/> <Port value="14003"/> </Channel> <Channel> <Name value="Perf_NIP_Channel_1"/> <ChannelType value="ChannelType::RSSL_SOCKET"/> <GuaranteedOutputBuffers value="100000"/> <ConnectionPingTimeout value="30000"/> <TcpNodelay value="0"/> <Host value="localhost"/> <Port value="14003"/> <InterfaceName value=""/> <HighWaterMark value="6144"/> <NumInputBuffers value="10000"/> <SysRecvBufSize value="0"/> <SysSendBufSize value="0"/> </Channel> </ChannelList> </ChannelGroup> <ServerGroup> <ServerList> <Server> <Name value="Server_1"/> <ServerType value="ServerType::RSSL_SOCKET"/> <!-- CompressionType is optional: defaulted to None --> <!-- possible values: None, ZLib, LZ4 --> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <!-- ConnectionPingTimeout is optional: defaulted to 30000 --> <ConnectionPingTimeout value="30000"/> <!-- TcpNodelay is optional: defaulted to 1 --> <!-- possible values: 1 (tcp_nodelay option set), 0 (tcp_nodelay not set) --> <TcpNodelay value="1"/> <Port value="14002"/> </Server> <Server> <Name value="Server_2"/> <ServerType value="ServerType::RSSL_WEBSOCKET"/> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <ConnectionPingTimeout value="30000"/> <TcpNodelay value="1"/> <Port value="15000"/> <MaxFragmentSize value="6144"/> <WsProtocols value="rssl.json.v2, rssl.rwf, tr_json2"/> </Server> <!--Performance tools server --> <Server> <Name value="Perf_Server_1"/> <ServerType value="ServerType::RSSL_SOCKET"/> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="50000"/> <ConnectionPingTimeout value="30000"/> <TcpNodelay value="1"/> <Port value="14002"/> <HighWaterMark value="6144"/> <InterfaceName value=""/> <MaxFragmentSize value="6144"/> <NumInputBuffers value="10000"/> <SysRecvBufSize value="65535"/> <SysSendBufSize value="65535"/> </Server> </ServerList> </ServerGroup> <LoggerGroup> <LoggerList> <Logger> <Name value="Logger_1"/> <!-- LoggerType is optional: defaulted to "File" --> <!-- possible values: Stdout, File --> <LoggerType value="LoggerType::Stdout"/> <!-- LoggerSeverity is optional: defaulted to "Success" --> <!-- possible values: Verbose, Success, Warning, Error, NoLogMsg --> <LoggerSeverity value="LoggerSeverity::Success"/> </Logger> <Logger> <Name value="Logger_2"/> <LoggerType value="LoggerType::File"/> <!-- FileName is optional: defaulted to "emaLog_<process id>.log" --> <FileName value="emaLog"/> <LoggerSeverity value="LoggerSeverity::Success"/> </Logger> </LoggerList> </LoggerGroup> <!-- source directory refresh configuration used by provider --> <DirectoryGroup> <!-- DefaultDirectory specifies Directory used as default if providers do not specify Directory name --> <DefaultDirectory value="Directory_1"/> <DirectoryList> <!-- providers refer to the Directory by name --> <!-- Directory is a set of Services (one or more) on which a provider will provide item data --> <Directory> <Name value="Directory_1"/> <Service> <Name value="TEST_NI_PUB"/> <InfoFilter> <!-- optional value; if not specified EMA will assign it --> <ServiceId value="0"/> <!-- optional value --> <Vendor value="company name"/> <!-- possible values: 0 - means consolidation service, 1 - means original provider --> <IsSource value="0"/> <!-- an array of market domains supported by this service --> <!-- domains defined in the RDM Usage Guide may be refered by name --> <!-- names of the RDM defined domains are listed in the EmaRdm.h file --> <!-- e.g. MMT_MARKET_PRICE, MMT_MARKET_BY_ORDER --> <!-- note that the capabilities may be specified with names and or numbers --> <Capabilities> <CapabilitiesEntry value="MMT_MARKET_PRICE"/> <CapabilitiesEntry value="MMT_MARKET_BY_ORDER"/> </Capabilities> <!-- list of dictionary names specified in the DictionaryGroup --> <!-- EMA will populate the Service::InfoFilter::DictionariesProvided element --> <!-- with the respective <>ItemName values --> <DictionariesProvided> <DictionariesProvidedEntry value="Dictionary_1"/> <DictionariesProvidedEntry value="Dictionary_3"/> </DictionariesProvided> <!-- list of dictionary names specified in the DictionaryGroup --> <!-- EMA will populate the Service::InfoFilter::DictionariesUsed element --> <!-- with the respective <>ItemName values --> <DictionariesUsed> <DictionariesUsedEntry value="Dictionary_1"/> </DictionariesUsed> <!-- list of QoS values supported by this service --> <!-- possible values are listed in the OmmQos.h file of the EMA --> <QoS> <QoSEntry> <Timeliness value="Timeliness::RealTime"/> <Rate value="Rate::TickByTick"/> </QoSEntry> <QoSEntry> <Timeliness value="Timeliness::InexactDelayed"/> <Rate value="Rate::JustInTimeConflated"/> </QoSEntry> </QoS> <!-- 0 means does not support, 1 - means supports QoS range --> <SupportsQoSRange value="0"/> <!-- name of item list --> <ItemList value="#.itemlist"/> <!-- 0 means does not accept, 1 - means accepts consumer status --> <AcceptingConsumerStatus value="0"/> <!-- 0 means does not support, 1 - means supports out of band snapshots --> <SupportsOutOfBandSnapshots value="0"/> </InfoFilter> <!-- StateFilter is optional --> <!-- EMA will default the values as follows: --> <!-- for interactive provider --> <!-- - ServiceState is "up" and AcceptingRequests is "Yes" --> <!-- for non interactive provider --> <!-- - ServiceState is "up" and AcceptingRequests is "No" --> <StateFilter> <!-- 0 means service is down, 1 - means service is up (default; 1) --> <ServiceState value="1"/> <!-- 0 means service does not accept, 1 - means service accepts (default; 1) --> <AcceptingRequests value="1"/> <!-- optional; specifies status change to apply to all items provided by this service --> <!-- possible values are listed in the OmmState.h file of the EMA --> <Status> <!-- possible values are: Open, Close, CloseRecover --> <StreamState value="StreamState::Open"/> <!-- possibe values are: NoChange, Ok, Suspect --> <DataState value="DataState::Ok"/> <!-- possible values are: None, DacsDown, etc --> <StatusCode value="StatusCode::None"/> <!-- a text field --> <StatusText value=""/> </Status> </StateFilter> </Service> <Service> <Name value="NI_PUB"/> <InfoFilter> <DictionariesProvided> <DictionariesProvidedEntry value="Dictionary_1"/> </DictionariesProvided> <DictionariesUsed> <DictionariesUsedEntry value="Dictionary_2"/> </DictionariesUsed> <Vendor value="company name"/> <IsSource value="0"/> <Capabilities> <CapabilitiesEntry value="6"/> <CapabilitiesEntry value="MMT_MARKET_BY_ORDER"/> </Capabilities> <QoS> <QoSEntry> <Timeliness value="Timeliness::RealTime"/> <Rate value="Rate::TickByTick"/> </QoSEntry> </QoS> <SupportsQoSRange value="0"/> <ItemList value="#.itemlist"/> <AcceptingConsumerStatus value="0"/> <SupportsOutOfBandSnapshots value="0"/> </InfoFilter> <StateFilter> <ServiceState value="1"/> <AcceptingRequests value="1"/> <Status> <StreamState value="StreamState::Open"/> <DataState value="DataState::Ok"/> <StatusCode value="StatusCode::None"/> <StatusText value=""/> </Status> </StateFilter> </Service> </Directory> <Directory> <Name value="Directory_2"/> <Service> <Name value="DIRECT_FEED"/> <InfoFilter> <ServiceId value="1"/> <DictionariesProvided> <DictionariesProvidedEntry value="Dictionary_3"/> </DictionariesProvided> <DictionariesUsed> <DictionariesUsedEntry value="Dictionary_3"/> </DictionariesUsed> <Vendor value="company name"/> <IsSource value="0"/> <Capabilities> <CapabilitiesEntry value="MMT_DICTIONARY"/> <CapabilitiesEntry value="MMT_MARKET_PRICE"/> <CapabilitiesEntry value="MMT_MARKET_BY_ORDER"/> <CapabilitiesEntry value="MMT_MARKET_BY_PRICE"/> <CapabilitiesEntry value="200"/> </Capabilities> <QoS> <QoSEntry> <Timeliness value="Timeliness::RealTime"/> <Rate value="Rate::TickByTick"/> </QoSEntry> <QoSEntry> <Timeliness value="100"/> <Rate value="100"/> </QoSEntry> </QoS> <SupportsQoSRange value="0"/> <ItemList value="#.itemlist"/> <AcceptingConsumerStatus value="0"/> <SupportsOutOfBandSnapshots value="0"/> </InfoFilter> <StateFilter> <ServiceState value="1"/> <AcceptingRequests value="1"/> </StateFilter> </Service> </Directory> <Directory> <Name value="Directory_3"/> <Service> <Name value="DF_1"/> <InfoFilter> <DictionariesProvided> <DictionariesProvidedEntry value="Dictionary_3"/> <DictionariesProvidedEntry value="Dictionary_4"/> </DictionariesProvided> <DictionariesUsed> <DictionariesUsedEntry value="Dictionary_3"/> <DictionariesUsedEntry value="Dictionary_4"/> </DictionariesUsed> <Vendor value="company name"/> <IsSource value="0"/> <Capabilities> <CapabilitiesEntry value="6"/> <CapabilitiesEntry value="MMT_MARKET_BY_ORDER"/> </Capabilities> <QoS> <QoSEntry> <Timeliness value="Timeliness::RealTime"/> <Rate value="Rate::TickByTick"/> </QoSEntry> <QoSEntry> <Timeliness value="100"/> <Rate value="100"/> </QoSEntry> </QoS> <SupportsQoSRange value="0"/> <ItemList value="#.itemlist"/> <AcceptingConsumerStatus value="0"/> <SupportsOutOfBandSnapshots value="0"/> </InfoFilter> <StateFilter> <ServiceState value="1"/> <AcceptingRequests value="1"/> </StateFilter> </Service> </Directory> <Directory> <Name value="Perf_Directory_1"/> <Service> <Name value="NI_PUB"/> <InfoFilter> <ServiceId value="1"/> <DictionariesProvided> <DictionariesProvidedEntry value="Dictionary_3"/> </DictionariesProvided> <DictionariesUsed> <DictionariesUsedEntry value="Dictionary_3"/> </DictionariesUsed> <Vendor value="RefinitivDevTestLab"/> <IsSource value="0"/> <Capabilities> <CapabilitiesEntry value="MMT_DICTIONARY"/> <CapabilitiesEntry value="MMT_MARKET_PRICE"/> <CapabilitiesEntry value="MMT_MARKET_BY_ORDER"/> <CapabilitiesEntry value="MMT_MARKET_BY_PRICE"/> <CapabilitiesEntry value="200"/> </Capabilities> <QoS> <QoSEntry> <Timeliness value="Timeliness::RealTime"/> <Rate value="Rate::TickByTick"/> </QoSEntry> <QoSEntry> <Timeliness value="100"/> <Rate value="100"/> </QoSEntry> </QoS> <SupportsQoSRange value="0"/> <ItemList value="#.itemlist"/> <AcceptingConsumerStatus value="0"/> <SupportsOutOfBandSnapshots value="0"/> </InfoFilter> <StateFilter> <ServiceState value="1"/> <AcceptingRequests value="1"/> </StateFilter> </Service> </Directory> </DirectoryList> </DirectoryGroup> <DictionaryGroup> <DictionaryList> <Dictionary> <Name value="Dictionary_1"/> <!-- dictionaryType is optional: defaulted to ChannelDictionary" --> <!-- possible values: ChannelDictionary, FileDictionary --> <!-- if dictionaryType is set to ChannelDictionary, file names are ignored --> <DictionaryType value="DictionaryType::ChannelDictionary"/> </Dictionary> <Dictionary> <Name value="Dictionary_2"/> <DictionaryType value="DictionaryType::FileDictionary"/> <!-- dictionary names are optional: defaulted to RDMFieldDictionary and enumtype.def --> <RdmFieldDictionaryFileName value="./RDMFieldDictionary"/> <EnumTypeDefFileName value="./enumtype.def"/> </Dictionary> <Dictionary> <Name value="Dictionary_3"/> <!-- providers always assume DictionaryType = DictionaryType::FileDictionary --> <DictionaryType value="DictionaryType::FileDictionary"/> <!-- dictionary file names are optional: defaulted to ./RDMFieldDictionary and ./enumtype.def --> <RdmFieldDictionaryFileName value="./RDMFieldDictionary"/> <EnumTypeDefFileName value="./enumtype.def"/> <!-- <dictionary>ItemName represents the names shown in DictionariesProvided and DictionariesUsed elements of the Directory InfoFilter --> <!-- <dictionary>ItemName is optional; default values are "RWFFld" for the RdmFieldDictionary and "RWFEnum" for the enumtype.def --> <RdmFieldDictionaryItemName value="RWFFld"/> <EnumTypeDefItemName value="RWFEnum"/> </Dictionary> <Dictionary> <Name value="Dictionary_4"/> <DictionaryType value="DictionaryType::FileDictionary"/> <RdmFieldDictionaryFileName value="./RDMFieldDictionary_ID4"/> <EnumTypeDefFileName value="./enumtype_ID4.def"/> <RdmFieldDictionaryItemName value="RWFFld_ID4"/> <EnumTypeDefItemName value="RWFEnum_ID4"/> </Dictionary> </DictionaryList> </DictionaryGroup> </EmaConfig>