EMA C++ Edition
List of all members | Public Types
refinitiv::ema::access::OmmNiProviderConfig Class Reference

OmmNiProviderConfig is used to specify configuration and behaviour of NonInteractive OmmProvider. More...

Inheritance diagram for refinitiv::ema::access::OmmNiProviderConfig:
refinitiv::ema::access::OmmProviderConfig

Public Types

enum  AdminControl {
  UserControlEnum ,
  ApiControlEnum
}
 
enum  EncryptionProtocolTypes {
  ENC_NONE = 0x00 ,
  ENC_TLSV1_2 = 0x04 ,
  ENC_TLSV1_3 = 0x08
}
 
enum  OperationModel {
  UserDispatchEnum ,
  ApiDispatchEnum
}
 
- Public Types inherited from refinitiv::ema::access::OmmProviderConfig
enum  ProviderRole {
  NonInteractiveEnum ,
  InteractiveEnum
}
 

Public Member Functions

Constructor
 OmmNiProviderConfig ()
  More...
 
 OmmNiProviderConfig (const EmaString &path)
  More...
 
Destructor
virtual ~OmmNiProviderConfig ()
  More...
 
Accessors
ProviderRole getProviderRole () const
  More...
 
- Public Member Functions inherited from refinitiv::ema::access::OmmProviderConfig
virtual ~OmmProviderConfig ()
  More...
 

Operations

class OmmNiProviderImpl
 
class OmmProvider
 
OmmNiProviderConfigclear ()
  More...
 
OmmNiProviderConfigusername (const EmaString &username)
  More...
 
OmmNiProviderConfigpassword (const EmaString &password)
  More...
 
OmmNiProviderConfigposition (const EmaString &position)
  More...
 
OmmNiProviderConfigapplicationId (const EmaString &applicationId)
  More...
 
OmmNiProviderConfiginstanceId (const EmaString &instanceId)
  More...
 
OmmNiProviderConfighost (const EmaString &host="localhost:14003")
  More...
 
OmmNiProviderConfigchannelType (EmaConfig::ConnectionTypeEnum channelType)
  More...
 
OmmNiProviderConfigencryptedProtocolType (EmaConfig::EncryptedProtocolTypeEnum encProtocolType)
  More...
 
OmmNiProviderConfigoperationModel (OperationModel operationModel=ApiDispatchEnum)
  More...
 
OmmNiProviderConfigadminControlDirectory (AdminControl control=ApiControlEnum)
  More...
 
OmmNiProviderConfigproviderName (const EmaString &providerName)
  More...
 
OmmNiProviderConfigtunnelingProxyHostName (const EmaString &proxyHostName)
  More...
 
OmmNiProviderConfigtunnelingProxyPort (const EmaString &proxyPort)
  More...
 
OmmNiProviderConfigtunnelingSecurityProtocol (int securityProtocol)
  More...
 
OmmNiProviderConfigtunnelingObjectName (const EmaString &objectName)
  More...
 
OmmNiProviderConfigtunnelingLibSslName (const EmaString &libsslName)
  More...
 
OmmNiProviderConfigtunnelingLibCryptoName (const EmaString &libcryptoName)
  More...
 
OmmNiProviderConfiglibcurlName (const EmaString &libcurlName)
  More...
 
OmmNiProviderConfigproxyUserName (const EmaString &proxyUserName)
  More...
 
OmmNiProviderConfigproxyPasswd (const EmaString &proxyPasswd)
  More...
 
OmmNiProviderConfigproxyDomain (const EmaString &proxyDomain)
  More...
 
OmmNiProviderConfigsslCAStore (const EmaString &sslCAStore)
  More...
 
OmmNiProviderConfigconfig (const Data &config)
  More...
 
OmmNiProviderConfigaddAdminMsg (const ReqMsg &reqMsg)
  More...
 
OmmNiProviderConfigaddAdminMsg (const RefreshMsg &refreshMsg)
  More...
 
OmmNiProviderConfigworkerThreadBind (const EmaString &cpuString)
  More...
 
OmmNiProviderConfigapiThreadBind (const EmaString &cpuString)
  More...
 
OmmNiProviderConfigshouldInitializeCPUIDlib (bool shouldInitCPUIDlib)
  More...
 

Additional Inherited Members

- Protected Member Functions inherited from refinitiv::ema::access::OmmProviderConfig
 OmmProviderConfig ()
  More...
 

Detailed Description

OmmNiProviderConfig provides a default basic NonInteractive OmmProvider configuration.

The default configuration may be modified and or appended by using EmaConfig.xml file or any interface methods of this class.

The EmaConfig.xml file is read in if it is present in the working directory of the application.

Calling any interface methods of OmmNiProviderConfig class overrides or appends the existing configuration.

Remarks
All methods in this class are Lock-free Method.
See also
OmmProvider, OmmProviderConfig

Definition at line 46 of file OmmNiProviderConfig.h.

Member Enumeration Documentation

◆ AdminControl

Enumerator
UserControlEnum 

specifies user submit directory refresh message

ApiControlEnum 

specifies API sends down directory refresh message based on the configuration

Definition at line 69 of file OmmNiProviderConfig.h.

◆ EncryptionProtocolTypes

Enumerator
ENC_NONE 

(0x00) No encryption.

ENC_TLSV1_2 

(0x04) Encryption using TLSv1.2 protocol

ENC_TLSV1_3 

(0x08) Encryption using TLSv1.3 protocol

Definition at line 60 of file OmmNiProviderConfig.h.

◆ OperationModel

Enumerator
UserDispatchEnum 

specifies callbacks happen on user thread of control

ApiDispatchEnum 

specifies callbacks happen on API thread of control

Definition at line 52 of file OmmNiProviderConfig.h.

Constructor & Destructor Documentation

◆ OmmNiProviderConfig() [1/2]

refinitiv::ema::access::OmmNiProviderConfig::OmmNiProviderConfig ( )

Constructs OmmNiProviderConfig

◆ OmmNiProviderConfig() [2/2]

refinitiv::ema::access::OmmNiProviderConfig::OmmNiProviderConfig ( const EmaString path)

Constructs OmmNiProviderConfig

Parameters
[in]pathspecifies configuration file name or name of directory containing a file named EmaConfig.xml
Remarks
path is optional. If not specified, application will use EmaConfig.xml (if any) found in current working directory

◆ ~OmmNiProviderConfig()

virtual refinitiv::ema::access::OmmNiProviderConfig::~OmmNiProviderConfig ( )
virtual

Destructor.

Member Function Documentation

◆ addAdminMsg() [1/2]

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::addAdminMsg ( const RefreshMsg refreshMsg)

Specifies an administrative refresh message to override the default administrative refresh. Application may call multiple times prior to initialization. Supports Directory domain only.

Parameters
[in]refreshMsgspecifies administrative domain refresh message
Returns
reference to this object

◆ addAdminMsg() [2/2]

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::addAdminMsg ( const ReqMsg reqMsg)

Specifies an administrative request message to override the default administrative request. Application may call multiple times prior to initialization. Supports Login domain only.

Parameters
[in]reqMsgspecifies administrative domain request message
Returns
reference to this object

◆ adminControlDirectory()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::adminControlDirectory ( AdminControl  control = ApiControlEnum)

Specifies whether API or user controls sending of Directory refresh message.

Parameters
[in]controlspecifies who sends down the directory refresh message
Returns
reference to this object

◆ apiThreadBind()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::apiThreadBind ( const EmaString cpuString)

Specifies the Cpu core to bind for internal EMA thread that dispatch messages. When ApiDispatchEnum set as operational model. Application may call multiple times prior to initialization.

Parameters
[in]cpuStringspecifies the Cpu core in string format (Cpu core id or P:X C:Y T:Z format).
Returns
reference to this object

◆ applicationId()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::applicationId ( const EmaString applicationId)

Specifies the authorization application identifier. Must be unique for each application. Range 257 to 65535 is available for site-specific use. Range 1 to 256 is reserved.

Parameters
[in]applicationIdspecifies respective login request attribute
Returns
reference to this object

◆ channelType()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::channelType ( EmaConfig::ConnectionTypeEnum  channelType)

Specifies connection type. Overrides prior value

Parameters
[in]specifiesconnection type used by application. Connection type defined in EmaConfig::ConnectionTypeEnum
Exceptions
OmmInvalidUsageExceptionif use this API with WarmStandby channel configuration.
OmmInvalidUsageExceptionif channelType is not valid.
Returns
reference to this object

◆ clear()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::clear ( )

Clears the OmmNiProviderConfig and sets all the defaults.

Remarks
Invoking clear() method clears all the values and resets all the defaults
Returns
reference to this object

◆ config()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::config ( const Data config)

Specifies the local configuration, overriding and adding to the current content.

Parameters
[in]configspecifies OmmProvider configuration
Returns
reference to this object

◆ encryptedProtocolType()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::encryptedProtocolType ( EmaConfig::EncryptedProtocolTypeEnum  encProtocolType)

Specifies encrypted protocol type. Overrides prior value

Parameters
[in]specifiesencrypted protocol type used by application. Encrypted protocol type defined in EmaConfig::EncryptedProtocolTypeEnum
Exceptions
OmmInvalidUsageExceptionif use this API with WarmStandby channel configuration.
OmmInvalidUsageExceptionif use this API with not encoded channel type.
OmmInvalidUsageExceptionif encProtocolType is not valid.
Returns
reference to this object

◆ getProviderRole()

ProviderRole refinitiv::ema::access::OmmNiProviderConfig::getProviderRole ( ) const
virtual

Retrieve Provider's role

Returns
role of this OmmNiProviderConfig instance

Implements refinitiv::ema::access::OmmProviderConfig.

◆ host()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::host ( const EmaString host = "localhost:14003")

Specifies a hostname and port. Overrides prior value.

Remarks
Implies usage of TCP IP channel or RSSL_SOCKET.
Parameters
[in]hostspecifies server and port to which OmmProvider will connect
Remarks
if host set to "<hostname>:<port>", then hostname:port is assumed
if host set to "", then localhost:14003 is assumed
if host set to ":", then localhost:14003 is assumed
if host set to "<hostname>", then hostname:14003 is assumed
if host set to "<hostname>:", then hostname:14003 is assumed
if host set to ":<port>", then localhost:port is assumed
Returns
reference to this object

◆ instanceId()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::instanceId ( const EmaString instanceId)

Specifies the instance identifier. Can be any ASCII string, e.g. "Instance1". Used to differentiate applications running on the same client host.

Parameters
[in]instanceIdspecifies respective login request attribute
Returns
reference to this object

◆ libcurlName()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::libcurlName ( const EmaString libcurlName)

Specifies the name of the lbicurl.so shared library for connecting through HTTP proxies. This is supported on Socket connections and Encrypted connections with Socket encrypted protocol.

Parameters
[in]libcurlNamespecifies the name of the libcurl.so shared library
Returns
reference to this object

◆ operationModel()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::operationModel ( OperationModel  operationModel = ApiDispatchEnum)

Specifies the operation model, overriding the default. The operation model specifies whether to dispatch messages in the user or application thread of control.

Parameters
[in]specifiesthreading and dispatching model used by application
Returns
reference to this object

◆ password()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::password ( const EmaString password)

Specifies the password. Overrides a value specified in Login domain via the addAdminMsg( const ReqMsg& ) method.

Parameters
[in]passwordspecifies respective login request attribute
Returns
reference to this object

◆ position()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::position ( const EmaString position)

Specifies the position. Overrides a value specified in Login domain via the addAdminMsg( const ReqMsg& ) method.

Parameters
[in]positionspecifies respective login request attribute
Returns
reference to this object

◆ providerName()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::providerName ( const EmaString providerName)

Create an OmmProvider with providerName. This name identifies configuration section to be used by OmmProvider instance.

Parameters
[in]providerNamespecifies name of OmmProvider instance
Returns
reference to this object

◆ proxyDomain()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::proxyDomain ( const EmaString proxyDomain)

Specifies the domain of the user to authenticate. Needed for NTLM or for Negotiate/Kerberos or for Kerberos authentication protocols.

For Negotiate/Kerberos or for Kerberos authentication protocols, proxyDomain should be the same as the domain in the 'realms' and 'domain_realm' sections of the Kerberos configuration file.

Parameters
[in]proxyDomainspecifies the domain used for tunneling connection.
Returns
reference to this object

◆ proxyPasswd()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::proxyPasswd ( const EmaString proxyPasswd)

Specifies the passwd to authenticate. Needed for all authentication protocols.

Parameters
[in]proxyPasswdspecifies password used for tunneling connection.
Returns
reference to this object

◆ proxyUserName()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::proxyUserName ( const EmaString proxyUserName)

Specifies the user name to authenticate. Needed for all authentication protocols.

Parameters
[in]proxyUserNamespecifies user name used for tunneling connection.
Returns
reference to this object

◆ shouldInitializeCPUIDlib()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::shouldInitializeCPUIDlib ( bool  shouldInitCPUIDlib)

Specifies should ETA initialize CpuID library. It will analyze CPU topology. Application may call multiple times prior to initialization.

Parameters
[in]shouldInitCPUIDlibtrue ETA should initialize CpuID library; otherwise ETA will not initialize CpuID library.
Returns
reference to this object

◆ sslCAStore()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::sslCAStore ( const EmaString sslCAStore)

Specifies the path to an OpenSSL Certificate Authority store.

Parameters
[in]sslCAStorespecifies the file or directory where the CA store is located.
Returns
reference to this object

◆ tunnelingLibCryptoName()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::tunnelingLibCryptoName ( const EmaString libcryptoName)

Specifies the name of the libcrypto.so shared library for Encrypted connections on a Linux operating system.

Parameters
[in]libsslNamespecifies the name of the libcrypto.so shared library
Returns
reference to this object

◆ tunnelingLibSslName()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::tunnelingLibSslName ( const EmaString libsslName)

Specifies the name of the libssl.so shared library for Encrypted connections on a Linux operating system.

Parameters
[in]libsslNamespecifies the name of the libssl.so shared library
Returns
reference to this object

◆ tunnelingObjectName()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::tunnelingObjectName ( const EmaString objectName)

Specifies the object name to pass along with the underlying URL in HTTP and HTTPS connection messages.

Parameters
[in]objectNamespecifies the object name.
Returns
reference to this object

◆ tunnelingProxyHostName()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::tunnelingProxyHostName ( const EmaString proxyHostName)

Specifies the address or host name of the proxy server to connect to for an HTTP or HTTPS connection.

Parameters
[in]proxyHostNamespecifies the address or host name of the proxy server for tunneling connection.
Returns
reference to this object

◆ tunnelingProxyPort()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::tunnelingProxyPort ( const EmaString proxyPort)

Specifies the port number of the proxy server to connect to for an HTTP or HTTPS connection.

Parameters
[in]proxyPortspecifies the port number of the proxy server for tunneling connection.
Returns
reference to this object

◆ tunnelingSecurityProtocol()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::tunnelingSecurityProtocol ( int  securityProtocol)

Specifies the cryptographic protocols to be used for an Encrypted connection on a Linux operating system, of values TLSv1.2. The highest value of TLS will be selected by the Rssl API first, then it will roll back if the encryption handshake fails. The protocol defaults to TLSv1.2 and TLSv1.3. Use OmmNiProviderConfig::EncryptionProtocolTypes flags to set allowed protocols.

Parameters
[in]securityProtocolspecifies a cryptopgraphic protocol.
Returns
reference to this object

◆ username()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::username ( const EmaString username)

Specifies the username. Overrides a value specified in Login domain via the addAdminMsg( const ReqMsg& ) method.

Parameters
[in]usernamespecifies name used on login request
Returns
reference to this object

◆ workerThreadBind()

OmmNiProviderConfig& refinitiv::ema::access::OmmNiProviderConfig::workerThreadBind ( const EmaString cpuString)

Specifies the Cpu core to bind for Reactor Worker thread. Application may call multiple times prior to initialization.

Parameters
[in]cpuStringspecifies the Cpu core in string format (Cpu core id or P:X C:Y T:Z format).
Returns
reference to this object