BLPAPI C++ 3.26.7
Loading...
Searching...
No Matches
blpapi_sessionoptions.h
Go to the documentation of this file.
1/* Copyright 2012. Bloomberg Finance L.P.
2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to
5 * deal in the Software without restriction, including without limitation the
6 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 * sell copies of the Software, and to permit persons to whom the Software is
8 * furnished to do so, subject to the following conditions: The above
9 * copyright notice and this permission notice shall be included in all copies
10 * or substantial portions of the Software.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
17 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
18 * IN THE SOFTWARE.
19 */
20
37
38#ifndef INCLUDED_BLPAPI_SESSIONOPTIONS
39#define INCLUDED_BLPAPI_SESSIONOPTIONS
40
84
85#ifndef INCLUDED_BLPAPI_CALL
86#include <blpapi_call.h>
87#endif
88
89#ifndef INCLUDED_BLPAPI_CORRELATIONID
91#endif
92
93#ifndef INCLUDED_BLPAPI_DEFS
94#include <blpapi_defs.h>
95#endif
96
97#ifndef INCLUDED_BLPAPI_EXCEPTION
98#include <blpapi_exception.h>
99#endif
100
101#ifndef INCLUDED_BLPAPI_STREAMPROXY
102#include <blpapi_streamproxy.h>
103#endif
104
105#ifndef INCLUDED_BLPAPI_TLSOPTIONS
106#include <blpapi_tlsoptions.h>
107#endif
108
109#ifndef INCLUDED_BLPAPI_TYPES
110#include <blpapi_types.h>
111#endif
112
113#include <blpapi_authoptions.h>
114#include <blpapi_error.h>
115#include <blpapi_socks5config.h>
116
117#include <stddef.h>
118
119#ifdef __cplusplus
120
121extern "C" {
122#endif
123
125
128
138BLPAPI_EXPORT
139blpapi_SessionOptions_t *blpapi_SessionOptions_create(void);
140
150BLPAPI_EXPORT
151blpapi_SessionOptions_t *blpapi_SessionOptions_duplicate(
152 const blpapi_SessionOptions_t *parameters);
153
163BLPAPI_EXPORT
164void blpapi_SessionOptions_copy(
165 blpapi_SessionOptions_t *lhs, const blpapi_SessionOptions_t *rhs);
166
174BLPAPI_EXPORT
175void blpapi_SessionOptions_destroy(blpapi_SessionOptions_t *parameters);
176
191BLPAPI_EXPORT
192int blpapi_SessionOptions_setServerHost(
193 blpapi_SessionOptions_t *parameters, const char *serverHost);
194
206BLPAPI_EXPORT
207int blpapi_SessionOptions_setServerPort(
208 blpapi_SessionOptions_t *parameters, unsigned short serverPort);
209
226BLPAPI_EXPORT
227int blpapi_SessionOptions_setServerAddress(blpapi_SessionOptions_t *parameters,
228 const char *serverHost,
229 unsigned short serverPort,
230 size_t index);
231
249BLPAPI_EXPORT
250int blpapi_SessionOptions_setServerAddressWithProxy(
251 blpapi_SessionOptions_t *parameters,
252 const char *serverHost,
253 unsigned short serverPort,
254 const blpapi_Socks5Config_t *socks5Config,
255 size_t index);
256
266BLPAPI_EXPORT
267int blpapi_SessionOptions_removeServerAddress(
268 blpapi_SessionOptions_t *parameters, size_t index);
269
282BLPAPI_EXPORT
283int blpapi_SessionOptions_setConnectTimeout(
284 blpapi_SessionOptions_t *parameters,
285 unsigned int timeoutInMilliseconds);
286
300BLPAPI_EXPORT
301int blpapi_SessionOptions_setDefaultServices(
302 blpapi_SessionOptions_t *parameters, const char *defaultServices);
303
318BLPAPI_EXPORT
319int blpapi_SessionOptions_setDefaultSubscriptionService(
320 blpapi_SessionOptions_t *parameters, const char *serviceIdentifier);
321
332BLPAPI_EXPORT
333void blpapi_SessionOptions_setDefaultTopicPrefix(
334 blpapi_SessionOptions_t *parameters, const char *prefix);
335
348BLPAPI_EXPORT
349void blpapi_SessionOptions_setAllowMultipleCorrelatorsPerMsg(
350 blpapi_SessionOptions_t *parameters,
351 int allowMultipleCorrelatorsPerMsg);
352
363BLPAPI_EXPORT
364void blpapi_SessionOptions_setClientMode(
365 blpapi_SessionOptions_t *parameters, int clientMode);
366
376BLPAPI_EXPORT
377void blpapi_SessionOptions_setMaxPendingRequests(
378 blpapi_SessionOptions_t *parameters, int maxPendingRequests);
379
392BLPAPI_EXPORT
393void blpapi_SessionOptions_setAutoRestartOnDisconnection(
394 blpapi_SessionOptions_t *parameters, int autoRestart);
395
408BLPAPI_EXPORT
409void blpapi_SessionOptions_setAutoRestart(
410 blpapi_SessionOptions_t *parameters, int autoRestart);
428BLPAPI_EXPORT
429int blpapi_SessionOptions_setSessionIdentityOptions(
430 blpapi_SessionOptions_t *parameters,
431 const blpapi_AuthOptions_t *authOptions,
432 blpapi_CorrelationId_t *cid);
433
444BLPAPI_EXPORT
445void blpapi_SessionOptions_setAuthenticationOptions(
446 blpapi_SessionOptions_t *parameters, const char *authOptions);
447
458BLPAPI_EXPORT
459void blpapi_SessionOptions_setNumStartAttempts(
460 blpapi_SessionOptions_t *parameters, int numStartAttempts);
461
471BLPAPI_EXPORT
472void blpapi_SessionOptions_setMaxEventQueueSize(
473 blpapi_SessionOptions_t *parameters, size_t maxEventQueueSize);
474
489BLPAPI_EXPORT
490int blpapi_SessionOptions_setSlowConsumerWarningHiWaterMark(
491 blpapi_SessionOptions_t *parameters, float hiWaterMark);
492
507BLPAPI_EXPORT
508int blpapi_SessionOptions_setSlowConsumerWarningLoWaterMark(
509 blpapi_SessionOptions_t *parameters, float loWaterMark);
510
526BLPAPI_EXPORT
527int blpapi_SessionOptions_setDefaultKeepAliveInactivityTime(
528 blpapi_SessionOptions_t *parameters, int inactivityMsecs);
529
545BLPAPI_EXPORT
546int blpapi_SessionOptions_setDefaultKeepAliveResponseTimeout(
547 blpapi_SessionOptions_t *parameters, int timeoutMsecs);
548
563BLPAPI_EXPORT
564int blpapi_SessionOptions_setKeepAliveEnabled(
565 blpapi_SessionOptions_t *parameters, int isEnabled);
566
577BLPAPI_EXPORT
578void blpapi_SessionOptions_setRecordSubscriptionDataReceiveTimes(
579 blpapi_SessionOptions_t *parameters, int shouldRecord);
580
593BLPAPI_EXPORT
594int blpapi_SessionOptions_setServiceCheckTimeout(
595 blpapi_SessionOptions_t *paramaters, int timeoutMsecs);
596
609BLPAPI_EXPORT
610int blpapi_SessionOptions_setServiceDownloadTimeout(
611 blpapi_SessionOptions_t *paramaters, int timeoutMsecs);
612
623BLPAPI_EXPORT
624void blpapi_SessionOptions_setTlsOptions(blpapi_SessionOptions_t *paramaters,
625 const blpapi_TlsOptions_t *tlsOptions);
626
638BLPAPI_EXPORT
639int blpapi_SessionOptions_setFlushPublishedEventsTimeout(
640 blpapi_SessionOptions_t *paramaters, int timeoutMsecs);
641
654BLPAPI_EXPORT
655int blpapi_SessionOptions_setBandwidthSaveModeDisabled(
656 blpapi_SessionOptions_t *parameters, int disableBandwidthSaveMode);
657
667BLPAPI_EXPORT
668const char *blpapi_SessionOptions_serverHost(
669 blpapi_SessionOptions_t *parameters);
670
678BLPAPI_EXPORT
679unsigned int blpapi_SessionOptions_serverPort(
680 blpapi_SessionOptions_t *parameters);
681
689BLPAPI_EXPORT
690int blpapi_SessionOptions_numServerAddresses(
691 blpapi_SessionOptions_t *parameters);
692
709BLPAPI_EXPORT
710int blpapi_SessionOptions_getServerAddress(blpapi_SessionOptions_t *parameters,
711 const char **serverHost,
712 unsigned short *serverPort,
713 size_t index);
714
738BLPAPI_EXPORT
739int blpapi_SessionOptions_getServerAddressWithProxy(
740 blpapi_SessionOptions_t *parameters,
741 const char **serverHost,
742 unsigned short *serverPort,
743 const char **socks5Host,
744 unsigned short *sock5Port,
745 size_t index);
746
754BLPAPI_EXPORT
755unsigned int blpapi_SessionOptions_connectTimeout(
756 blpapi_SessionOptions_t *parameters);
757
767BLPAPI_EXPORT
768const char *blpapi_SessionOptions_defaultServices(
769 blpapi_SessionOptions_t *parameters);
770
780BLPAPI_EXPORT
781const char *blpapi_SessionOptions_defaultSubscriptionService(
782 blpapi_SessionOptions_t *parameters);
783
793BLPAPI_EXPORT
794const char *blpapi_SessionOptions_defaultTopicPrefix(
795 blpapi_SessionOptions_t *parameters);
796
806BLPAPI_EXPORT
807int blpapi_SessionOptions_allowMultipleCorrelatorsPerMsg(
808 blpapi_SessionOptions_t *parameters);
809
818BLPAPI_EXPORT
819int blpapi_SessionOptions_clientMode(blpapi_SessionOptions_t *parameters);
820
828BLPAPI_EXPORT
829int blpapi_SessionOptions_maxPendingRequests(
830 blpapi_SessionOptions_t *parameters);
831
840BLPAPI_EXPORT
841int blpapi_SessionOptions_autoRestartOnDisconnection(
842 blpapi_SessionOptions_t *parameters);
843
855BLPAPI_EXPORT
856int blpapi_SessionOptions_autoRestart(blpapi_SessionOptions_t *parameters);
857
867BLPAPI_EXPORT
868const char *blpapi_SessionOptions_authenticationOptions(
869 blpapi_SessionOptions_t *parameters);
870
879BLPAPI_EXPORT
880int blpapi_SessionOptions_numStartAttempts(
881 blpapi_SessionOptions_t *parameters);
882
890BLPAPI_EXPORT
891size_t blpapi_SessionOptions_maxEventQueueSize(
892 blpapi_SessionOptions_t *parameters);
893
902BLPAPI_EXPORT
903float blpapi_SessionOptions_slowConsumerWarningHiWaterMark(
904 blpapi_SessionOptions_t *parameters);
905
914BLPAPI_EXPORT
915float blpapi_SessionOptions_slowConsumerWarningLoWaterMark(
916 blpapi_SessionOptions_t *parameters);
917
926BLPAPI_EXPORT
927int blpapi_SessionOptions_defaultKeepAliveInactivityTime(
928 blpapi_SessionOptions_t *parameters);
929
938BLPAPI_EXPORT
939int blpapi_SessionOptions_defaultKeepAliveResponseTimeout(
940 blpapi_SessionOptions_t *parameters);
941
950BLPAPI_EXPORT
951int blpapi_SessionOptions_keepAliveEnabled(
952 blpapi_SessionOptions_t *parameters);
953
962BLPAPI_EXPORT
963int blpapi_SessionOptions_recordSubscriptionDataReceiveTimes(
964 blpapi_SessionOptions_t *parameters);
965
974BLPAPI_EXPORT
975int blpapi_SessionOptions_serviceCheckTimeout(
976 blpapi_SessionOptions_t *parameters);
977
986BLPAPI_EXPORT
987int blpapi_SessionOptions_serviceDownloadTimeout(
988 blpapi_SessionOptions_t *parameters);
989
1008BLPAPI_EXPORT
1009int blpapi_SessionOptions_print(blpapi_SessionOptions_t *parameters,
1010 blpapi_StreamWriter_t streamWriter,
1011 void *stream,
1012 int indentLevel,
1013 int spacesPerLevel);
1014
1024BLPAPI_EXPORT
1025int blpapi_SessionOptions_flushPublishedEventsTimeout(
1026 blpapi_SessionOptions_t *parameters);
1027
1036BLPAPI_EXPORT
1037int blpapi_SessionOptions_bandwidthSaveModeDisabled(
1038 blpapi_SessionOptions_t *parameters);
1039
1053BLPAPI_EXPORT
1054int blpapi_SessionOptions_setApplicationIdentityKey(
1055 blpapi_SessionOptions_t *parameters,
1056 const char *applicationIdentityKey,
1057 size_t size);
1073BLPAPI_EXPORT
1074int blpapi_SessionOptions_applicationIdentityKey(
1075 const char **applicationIdentityKey,
1076 size_t *size,
1077 blpapi_SessionOptions_t *parameters);
1078
1093BLPAPI_EXPORT
1094int blpapi_SessionOptions_setSessionName(blpapi_SessionOptions_t *parameters,
1095 const char *sessionName,
1096 size_t size);
1097
1112BLPAPI_EXPORT
1113int blpapi_SessionOptions_sessionName(const char **sessionName,
1114 size_t *size,
1115 blpapi_SessionOptions_t *parameters);
1116
1119
1120#ifdef __cplusplus
1121}
1122
1123namespace BloombergLP {
1124namespace blpapi {
1131
1142
1143 blpapi_SessionOptions_t *d_handle_p;
1144
1145 public:
1146 /*
1147 * The possible options for how to connect to the API
1148 */
1149
1151 AUTO = BLPAPI_CLIENTMODE_AUTO,
1153
1154 DAPI = BLPAPI_CLIENTMODE_DAPI,
1156
1157 SAPI = BLPAPI_CLIENTMODE_SAPI
1159 };
1160
1165
1166 SessionOptions(const SessionOptions& original);
1170
1175
1176 // MANIPULATORS
1177
1183
1184 void setServerHost(const char *host);
1193
1194 void setServerPort(unsigned short port);
1200
1201 int setServerAddress(
1202 const char *serverHost, unsigned short serverPort, size_t index);
1210
1211 int setServerAddress(const char *serverHost,
1212 unsigned short serverPort,
1213 const Socks5Config& socks5Config,
1214 size_t index);
1222
1223 int removeServerAddress(size_t index);
1227
1228 void setConnectTimeout(unsigned int timeoutMilliSeconds);
1235
1236 void setDefaultServices(const char *defaultServices);
1242
1243 void setDefaultSubscriptionService(const char *serviceIdentifier);
1254
1255 void setDefaultTopicPrefix(const char *prefix);
1263
1277
1278 void setClientMode(int clientMode);
1286
1292
1294 const CorrelationId& correlationId = CorrelationId());
1316
1317 void setAuthenticationOptions(const char *authOptions);
1321
1328
1329 void setAutoRestartOnDisconnection(bool autoRestart);
1335
1336 void setMaxEventQueueSize(size_t eventQueueSize);
1344
1345 void setSlowConsumerWarningHiWaterMark(float hiWaterMark);
1358
1359 void setSlowConsumerWarningLoWaterMark(float loWaterMark);
1372
1373 void setDefaultKeepAliveInactivityTime(int inactivityMsecs);
1385
1386 void setDefaultKeepAliveResponseTimeout(int timeoutMsecs);
1398
1399 void setKeepAliveEnabled(bool isEnabled);
1410
1411 void setRecordSubscriptionDataReceiveTimes(bool shouldRecord);
1418
1419 void setServiceCheckTimeout(int timeoutMsecs);
1426
1427 void setServiceDownloadTimeout(int timeoutMsecs);
1434
1435 void setTlsOptions(const TlsOptions& tlsOptions);
1439
1440 void setFlushPublishedEventsTimeout(int timeoutMsecs);
1447
1448 void setBandwidthSaveModeDisabled(bool isDisabled);
1454
1455 void setApplicationIdentityKey(const std::string& applicationIdentityKey);
1460
1461 void setSessionName(const std::string& sessionName);
1468
1469 // ACCESSORS
1470 const char *serverHost() const;
1476
1477 unsigned short serverPort() const;
1483
1484 size_t numServerAddresses() const;
1488
1489 int getServerAddress(const char **serverHost,
1490 unsigned short *serverPort,
1491 size_t index) const;
1497
1498 int getServerAddress(const char **serverHost,
1499 unsigned short *serverPort,
1500 Socks5Config *socksConfig,
1501 size_t index) const;
1508
1509 unsigned int connectTimeout() const;
1514
1515 const char *defaultServices() const;
1519
1520 const char *defaultSubscriptionService() const;
1527
1528 const char *defaultTopicPrefix() const;
1534
1535 bool allowMultipleCorrelatorsPerMsg() const;
1540
1541 int clientMode() const;
1546
1547 int maxPendingRequests() const;
1552
1554 blpapi_SessionOptions_t *handle() const;
1559
1560 bool autoRestartOnDisconnection() const;
1564
1565 const char *authenticationOptions() const;
1569
1570 int numStartAttempts() const;
1575
1576 size_t maxEventQueueSize() const;
1581
1582 float slowConsumerWarningHiWaterMark() const;
1587
1588 float slowConsumerWarningLoWaterMark() const;
1593
1599
1605
1606 bool keepAliveEnabled() const;
1611
1618
1619 int serviceCheckTimeout() const;
1624
1625 int serviceDownloadTimeout() const;
1630
1631 int flushPublishedEventsTimeout() const;
1636
1637 bool bandwidthSaveModeDisabled() const;
1642
1643 std::string applicationIdentityKey();
1648
1649 std::string sessionName();
1653
1654 std::ostream& print(std::ostream& stream,
1655 int indentLevel = 0,
1656 int spacesPerLevel = 4) const;
1669};
1670
1673
1674// FREE OPERATORS
1675std::ostream& operator<<(
1676 std::ostream& stream, const SessionOptions& sessionOptions);
1688
1689namespace util {
1690
1694
1695constexpr const char *to_string(SessionOptions::ClientMode clientMode);
1699
1701
1702} // close namespace util
1703
1704// ============================================================================
1705// INLINE FUNCTION DEFINITIONS
1706// ============================================================================
1707
1708// --------------------
1709// class SessionOptions
1710// --------------------
1712{
1713 d_handle_p = blpapi_SessionOptions_create();
1714#if BLPAPI_COMPAT_33X
1715 blpapi_SessionOptions_setClientMode(
1716 d_handle_p, BLPAPI_CLIENTMODE_AUTO | BLPAPI_CLIENTMODE_COMPAT_33X);
1717#endif
1718}
1719
1721{
1722 d_handle_p = blpapi_SessionOptions_duplicate(options.handle());
1723}
1724
1726{
1727 blpapi_SessionOptions_destroy(d_handle_p);
1728}
1729
1731{
1732 blpapi_SessionOptions_copy(this->handle(), rhs.handle());
1733 return *this;
1734}
1735
1736inline void SessionOptions::setServerHost(const char *newServerHost)
1737{
1738 blpapi_SessionOptions_setServerHost(d_handle_p, newServerHost);
1739}
1740
1741inline void SessionOptions::setServerPort(unsigned short newServerPort)
1742{
1743 blpapi_SessionOptions_setServerPort(d_handle_p, newServerPort);
1744}
1745
1747 const char *serverHost, unsigned short serverPort, size_t index)
1748{
1749 return blpapi_SessionOptions_setServerAddress(
1750 d_handle_p, serverHost, serverPort, index);
1751}
1752
1754 unsigned short serverPort,
1755 const Socks5Config& socks5Config,
1756 size_t index)
1757{
1758 return BLPAPI_CALL(blpapi_SessionOptions_setServerAddressWithProxy)(
1759 d_handle_p, serverHost, serverPort, socks5Config.impl(), index);
1760}
1761
1763{
1764 return blpapi_SessionOptions_removeServerAddress(d_handle_p, index);
1765}
1766
1767inline void SessionOptions::setConnectTimeout(unsigned int timeoutMilliSeconds)
1768{
1769 ExceptionUtil::throwOnError(blpapi_SessionOptions_setConnectTimeout(
1770 d_handle_p, timeoutMilliSeconds));
1771}
1772
1773inline void SessionOptions::setDefaultServices(const char *newDefaultServices)
1774{
1775 blpapi_SessionOptions_setDefaultServices(d_handle_p, newDefaultServices);
1776}
1777
1779 const char *serviceIdentifier)
1780{
1781 blpapi_SessionOptions_setDefaultSubscriptionService(
1782 d_handle_p, serviceIdentifier);
1783}
1784
1785inline void SessionOptions::setDefaultTopicPrefix(const char *prefix)
1786{
1787 blpapi_SessionOptions_setDefaultTopicPrefix(d_handle_p, prefix);
1788}
1789
1791 bool newAllowMultipleCorrelatorsPerMsg)
1792{
1793 blpapi_SessionOptions_setAllowMultipleCorrelatorsPerMsg(
1794 d_handle_p, newAllowMultipleCorrelatorsPerMsg);
1795}
1796
1797inline void SessionOptions::setClientMode(int newClientMode)
1798{
1799#if BLPAPI_COMPAT_33X
1800 newClientMode |= BLPAPI_CLIENTMODE_COMPAT_33X;
1801#endif
1802
1803 blpapi_SessionOptions_setClientMode(d_handle_p, newClientMode);
1804}
1805
1806inline void SessionOptions::setMaxPendingRequests(int newMaxPendingRequests)
1807{
1808 blpapi_SessionOptions_setMaxPendingRequests(
1809 d_handle_p, newMaxPendingRequests);
1810}
1811
1813{
1814 blpapi_SessionOptions_setAutoRestartOnDisconnection(
1815 d_handle_p, autoRestart ? 1 : 0);
1816}
1817
1819 const AuthOptions& authOptions, const CorrelationId& cid)
1820{
1821 blpapi_CorrelationId_t cidHandle = cid.impl();
1822
1824 BLPAPI_CALL(blpapi_SessionOptions_setSessionIdentityOptions)(
1825 d_handle_p, authOptions.handle(), &cidHandle));
1826
1827 return CorrelationId(cidHandle);
1828}
1829
1830inline void SessionOptions::setAuthenticationOptions(const char *authOptions)
1831{
1832 blpapi_SessionOptions_setAuthenticationOptions(d_handle_p, authOptions);
1833}
1834
1835inline void SessionOptions::setNumStartAttempts(int newNumStartAttempts)
1836{
1837 blpapi_SessionOptions_setNumStartAttempts(d_handle_p, newNumStartAttempts);
1838}
1839
1840inline void SessionOptions::setMaxEventQueueSize(size_t eventQueueSize)
1841{
1842 BLPAPI_CALL_SESSIONOPTIONS_SETMAXEVENTQUEUESIZE(
1843 d_handle_p, eventQueueSize);
1844}
1845
1847 float hiWaterMark)
1848{
1850 BLPAPI_CALL_SESSIONOPTIONS_SETSLOWCONSUMERHIWATERMARK(
1851 d_handle_p, hiWaterMark));
1852}
1853
1855 float loWaterMark)
1856{
1858 BLPAPI_CALL_SESSIONOPTIONS_SETSLOWCONSUMERLOWATERMARK(
1859 d_handle_p, loWaterMark));
1860}
1861
1863 int inactivityTime)
1864{
1866 BLPAPI_CALL_SESSIONOPTIONS_SETDEFAULTKEEPALIVEINACTIVITYTIME(
1867 d_handle_p, inactivityTime));
1868}
1869
1871 int responseTimeout)
1872{
1874 BLPAPI_CALL_SESSIONOPTIONS_SETDEFAULTKEEPALIVERESPONSETIMEOUT(
1875 d_handle_p, responseTimeout));
1876}
1877
1878inline void SessionOptions::setKeepAliveEnabled(bool isEnabled)
1879{
1880 ExceptionUtil::throwOnError(BLPAPI_CALL_SESSIONOPTIONS_SETKEEPALIVEENABLED(
1881 d_handle_p, isEnabled));
1882}
1883
1885 bool shouldRecrod)
1886{
1887 BLPAPI_CALL_SESSIONOPTION_SETRECORDSUBSCRIPTIONDATARECEIVETIMES(
1888 d_handle_p, shouldRecrod);
1889}
1890
1891inline void SessionOptions::setServiceCheckTimeout(int timeoutMsecs)
1892{
1894 BLPAPI_CALL(blpapi_SessionOptions_setServiceCheckTimeout)(
1895 d_handle_p, timeoutMsecs));
1896}
1897
1899{
1901 BLPAPI_CALL(blpapi_SessionOptions_setServiceDownloadTimeout)(
1902 d_handle_p, timeoutMsecs));
1903}
1904
1905inline void SessionOptions::setTlsOptions(const TlsOptions& tlsOptions)
1906{
1907 BLPAPI_CALL(blpapi_SessionOptions_setTlsOptions)
1908 (d_handle_p, tlsOptions.handle());
1909}
1910
1912{
1914 BLPAPI_CALL(blpapi_SessionOptions_setFlushPublishedEventsTimeout)(
1915 d_handle_p, timeoutMsecs));
1916}
1917
1919{
1921 BLPAPI_CALL_SESSIONOPTIONS_SETBANDWIDTHSAVEMODEDISABLED(
1922 d_handle_p, isDisabled));
1923}
1924
1925inline const char *SessionOptions::serverHost() const
1926{
1927 return blpapi_SessionOptions_serverHost(d_handle_p);
1928}
1929
1930inline unsigned short SessionOptions::serverPort() const
1931{
1932 return static_cast<unsigned short>(
1933 blpapi_SessionOptions_serverPort(d_handle_p));
1934}
1935
1937{
1938 return static_cast<size_t>(
1939 blpapi_SessionOptions_numServerAddresses(d_handle_p));
1940}
1941
1942inline int SessionOptions::getServerAddress(const char **serverHostOut,
1943 unsigned short *serverPortOut,
1944 size_t index) const
1945{
1946 return blpapi_SessionOptions_getServerAddress(
1947 d_handle_p, serverHostOut, serverPortOut, index);
1948}
1949
1950inline int SessionOptions::getServerAddress(const char **serverHostOut,
1951 unsigned short *serverPortOut,
1952 Socks5Config *socksConfig,
1953 size_t index) const
1954{
1955 const char *socks5ConfigHost = 0;
1956 unsigned short socks5ConfigPort = 0;
1957 ExceptionUtil::throwOnError(BLPAPI_CALL(
1958 blpapi_SessionOptions_getServerAddressWithProxy)(d_handle_p,
1959 serverHostOut,
1960 serverPortOut,
1961 &socks5ConfigHost,
1962 &socks5ConfigPort,
1963 index));
1964
1965 if (socks5ConfigHost) {
1966 *socksConfig = Socks5Config(socks5ConfigHost, socks5ConfigPort);
1967 }
1968
1969 return 0;
1970}
1971
1972inline unsigned int SessionOptions::connectTimeout() const
1973{
1974 return blpapi_SessionOptions_connectTimeout(d_handle_p);
1975}
1976
1977inline const char *SessionOptions::defaultServices() const
1978{
1979 return blpapi_SessionOptions_defaultServices(d_handle_p);
1980}
1981
1983{
1984 return blpapi_SessionOptions_defaultSubscriptionService(d_handle_p);
1985}
1986
1987inline const char *SessionOptions::defaultTopicPrefix() const
1988{
1989 return blpapi_SessionOptions_defaultTopicPrefix(d_handle_p);
1990}
1991
1993{
1994 return blpapi_SessionOptions_allowMultipleCorrelatorsPerMsg(d_handle_p)
1995 ? true
1996 : false;
1997}
1998
2000{
2001 return blpapi_SessionOptions_clientMode(d_handle_p);
2002}
2003
2005{
2006 return blpapi_SessionOptions_maxPendingRequests(d_handle_p);
2007}
2008
2010{
2011 return blpapi_SessionOptions_autoRestartOnDisconnection(d_handle_p) != 0;
2012}
2013
2015{
2016 return blpapi_SessionOptions_authenticationOptions(d_handle_p);
2017}
2018
2020{
2021 return blpapi_SessionOptions_numStartAttempts(d_handle_p);
2022}
2023
2025{
2026 return BLPAPI_CALL_SESSIONOPTIONS_MAXEVENTQUEUESIZE(d_handle_p);
2027}
2028
2030{
2031 return BLPAPI_CALL_SESSIONOPTIONS_SLOWCONSUMERHIWATERMARK(d_handle_p);
2032}
2033
2035{
2036 return BLPAPI_CALL_SESSIONOPTIONS_SLOWCONSUMERLOWATERMARK(d_handle_p);
2037}
2038
2040{
2041 return BLPAPI_CALL_SESSIONOPTIONS_DEFAULTKEEPALIVEINACTIVITYTIME(
2042 d_handle_p);
2043}
2044
2046{
2047 return BLPAPI_CALL_SESSIONOPTIONS_DEFAULTKEEPALIVERESPONSETIMEOUT(
2048 d_handle_p);
2049}
2050
2052{
2053 return BLPAPI_CALL_SESSIONOPTIONS_KEEPALIVEENABLED(d_handle_p) != 0
2054 ? true
2055 : false;
2056}
2057
2059{
2060 return BLPAPI_CALL_SESSIONOPTION_RECORDSUBSCRIPTIONDATARECEIVETIMES(
2061 d_handle_p)
2062 ? true
2063 : false;
2064}
2065
2067{
2068 return BLPAPI_CALL(blpapi_SessionOptions_serviceCheckTimeout)(d_handle_p);
2069}
2070
2072{
2073 return BLPAPI_CALL(blpapi_SessionOptions_serviceDownloadTimeout)(
2074 d_handle_p);
2075}
2076
2078{
2079 return BLPAPI_CALL(blpapi_SessionOptions_flushPublishedEventsTimeout)(
2080 d_handle_p);
2081}
2082
2084{
2085 return BLPAPI_CALL_SESSIONOPTIONS_BANDWIDTHSAVEMODEDISABLED(d_handle_p)
2086 != 0
2087 ? true
2088 : false;
2089}
2090
2092 const std::string& applicationIdentityKey)
2093{
2094 ExceptionUtil::throwOnError(BLPAPI_CALL(
2095 blpapi_SessionOptions_setApplicationIdentityKey)(d_handle_p,
2097 static_cast<int>(applicationIdentityKey.size())));
2098}
2099
2101{
2102 const char *aik;
2103 size_t size;
2105 BLPAPI_CALL(blpapi_SessionOptions_applicationIdentityKey)(
2106 &aik, &size, d_handle_p));
2107 return std::string(aik, size);
2108}
2109
2110inline void SessionOptions::setSessionName(const std::string& sessionName)
2111{
2113 BLPAPI_CALL(blpapi_SessionOptions_setSessionName)(
2114 d_handle_p, sessionName.data(), sessionName.size()));
2115}
2116
2118{
2119 const char *sessionName = nullptr;
2120 size_t size = 0;
2121 ExceptionUtil::throwOnError(BLPAPI_CALL(blpapi_SessionOptions_sessionName)(
2122 &sessionName, &size, d_handle_p));
2123 return std::string(sessionName, size);
2124}
2125
2127inline blpapi_SessionOptions_t *SessionOptions::handle() const
2128{
2129 return d_handle_p;
2130}
2132
2133inline std::ostream& SessionOptions::print(
2134 std::ostream& stream, int indentLevel, int spacesPerLevel) const
2135{
2136 if (BLPAPI_CALL_AVAILABLE(blpapi_SessionOptions_print)) {
2137 BLPAPI_CALL(blpapi_SessionOptions_print)
2138 (d_handle_p,
2140 &stream,
2141 indentLevel,
2142 spacesPerLevel);
2143 }
2144 return stream;
2145}
2146
2147inline std::ostream& operator<<(
2148 std::ostream& stream, const SessionOptions& sessionOptions)
2149{
2150 return sessionOptions.print(stream, 0, -1);
2151}
2152
2153// --------------
2154// namespace util
2155// --------------
2156constexpr const char *util::to_string(SessionOptions::ClientMode clientMode)
2157{
2158 switch (clientMode) {
2160 return "AUTO";
2162 return "DAPI";
2164 return "SAPI";
2165 }
2166 // Silence warnings on some compilers
2167 return "UNDEFINED";
2168}
2169
2170} // close namespace blpapi
2171} // close namespace BloombergLP
2172
2173#endif // #ifdef __cplusplus
2174#endif // #ifndef INCLUDED_BLPAPI_SESSIONOPTIONS
Provides configuration settings for authorization.
Provide functions for dispatchtbl.
Provide a key to identify individual subscriptions or requests.
Common definitions used by the library.
Provide a collection of errors that library can return.
Defines Exceptions that can be thrown by the blpapi library.
Provide description of Socks5 proxy.
A signature for callback on print and default C++ implementation.
Maintain client credentials and trust material.
Provide BLPAPI types.
Definition blpapi_authoptions.h:485
Definition blpapi_correlationid.h:322
static void throwOnError(int errorCode)
Definition blpapi_exception.h:556
Definition blpapi_sessionoptions.h:1141
std::string applicationIdentityKey()
Definition blpapi_sessionoptions.h:2100
size_t numServerAddresses() const
Definition blpapi_sessionoptions.h:1936
void setNumStartAttempts(int numStartAttempts)
Definition blpapi_sessionoptions.h:1835
bool autoRestartOnDisconnection() const
Definition blpapi_sessionoptions.h:2009
void setDefaultSubscriptionService(const char *serviceIdentifier)
Definition blpapi_sessionoptions.h:1778
void setDefaultServices(const char *defaultServices)
Definition blpapi_sessionoptions.h:1773
int numStartAttempts() const
Definition blpapi_sessionoptions.h:2019
int setServerAddress(const char *serverHost, unsigned short serverPort, size_t index)
Definition blpapi_sessionoptions.h:1746
void setFlushPublishedEventsTimeout(int timeoutMsecs)
Definition blpapi_sessionoptions.h:1911
int getServerAddress(const char **serverHost, unsigned short *serverPort, size_t index) const
Definition blpapi_sessionoptions.h:1942
void setMaxPendingRequests(int maxPendingRequests)
Definition blpapi_sessionoptions.h:1806
std::string sessionName()
Definition blpapi_sessionoptions.h:2117
int serviceCheckTimeout() const
Definition blpapi_sessionoptions.h:2066
bool allowMultipleCorrelatorsPerMsg() const
Definition blpapi_sessionoptions.h:1992
void setBandwidthSaveModeDisabled(bool isDisabled)
Definition blpapi_sessionoptions.h:1918
const char * defaultServices() const
Definition blpapi_sessionoptions.h:1977
void setDefaultKeepAliveInactivityTime(int inactivityMsecs)
Definition blpapi_sessionoptions.h:1862
SessionOptions & operator=(const SessionOptions &rhs)
Definition blpapi_sessionoptions.h:1730
void setAuthenticationOptions(const char *authOptions)
Definition blpapi_sessionoptions.h:1830
bool keepAliveEnabled() const
Definition blpapi_sessionoptions.h:2051
SessionOptions()
Definition blpapi_sessionoptions.h:1711
const char * serverHost() const
Definition blpapi_sessionoptions.h:1925
unsigned short serverPort() const
Definition blpapi_sessionoptions.h:1930
void setServiceCheckTimeout(int timeoutMsecs)
Definition blpapi_sessionoptions.h:1891
void setServerHost(const char *host)
Definition blpapi_sessionoptions.h:1736
float slowConsumerWarningHiWaterMark() const
Definition blpapi_sessionoptions.h:2029
~SessionOptions()
Definition blpapi_sessionoptions.h:1725
void setAutoRestartOnDisconnection(bool autoRestart)
Definition blpapi_sessionoptions.h:1812
void setTlsOptions(const TlsOptions &tlsOptions)
Definition blpapi_sessionoptions.h:1905
ClientMode
Definition blpapi_sessionoptions.h:1150
@ SAPI
Always connect to the server API.
Definition blpapi_sessionoptions.h:1157
@ DAPI
Always connect to the desktop API.
Definition blpapi_sessionoptions.h:1154
@ AUTO
Automatic (desktop if available otherwise server)
Definition blpapi_sessionoptions.h:1151
int maxPendingRequests() const
Definition blpapi_sessionoptions.h:2004
const char * defaultTopicPrefix() const
Definition blpapi_sessionoptions.h:1987
int removeServerAddress(size_t index)
Definition blpapi_sessionoptions.h:1762
void setRecordSubscriptionDataReceiveTimes(bool shouldRecord)
Definition blpapi_sessionoptions.h:1884
CorrelationId setSessionIdentityOptions(const AuthOptions &authOptions, const CorrelationId &correlationId=CorrelationId())
Definition blpapi_sessionoptions.h:1818
void setKeepAliveEnabled(bool isEnabled)
Definition blpapi_sessionoptions.h:1878
void setServerPort(unsigned short port)
Definition blpapi_sessionoptions.h:1741
bool bandwidthSaveModeDisabled() const
Definition blpapi_sessionoptions.h:2083
int clientMode() const
Definition blpapi_sessionoptions.h:1999
void setSlowConsumerWarningLoWaterMark(float loWaterMark)
Definition blpapi_sessionoptions.h:1854
void setAllowMultipleCorrelatorsPerMsg(bool allowMultipleCorrelatorsPerMsg)
Definition blpapi_sessionoptions.h:1790
int defaultKeepAliveResponseTimeout() const
Definition blpapi_sessionoptions.h:2045
unsigned int connectTimeout() const
Definition blpapi_sessionoptions.h:1972
float slowConsumerWarningLoWaterMark() const
Definition blpapi_sessionoptions.h:2034
std::ostream & print(std::ostream &stream, int indentLevel=0, int spacesPerLevel=4) const
Definition blpapi_sessionoptions.h:2133
void setSlowConsumerWarningHiWaterMark(float hiWaterMark)
Definition blpapi_sessionoptions.h:1846
size_t maxEventQueueSize() const
Definition blpapi_sessionoptions.h:2024
bool recordSubscriptionDataReceiveTimes() const
Definition blpapi_sessionoptions.h:2058
void setSessionName(const std::string &sessionName)
Definition blpapi_sessionoptions.h:2110
const char * defaultSubscriptionService() const
Definition blpapi_sessionoptions.h:1982
void setDefaultKeepAliveResponseTimeout(int timeoutMsecs)
Definition blpapi_sessionoptions.h:1870
int serviceDownloadTimeout() const
Definition blpapi_sessionoptions.h:2071
const char * authenticationOptions() const
Definition blpapi_sessionoptions.h:2014
void setApplicationIdentityKey(const std::string &applicationIdentityKey)
Definition blpapi_sessionoptions.h:2091
void setDefaultTopicPrefix(const char *prefix)
Definition blpapi_sessionoptions.h:1785
int flushPublishedEventsTimeout() const
Definition blpapi_sessionoptions.h:2077
int defaultKeepAliveInactivityTime() const
Definition blpapi_sessionoptions.h:2039
void setMaxEventQueueSize(size_t eventQueueSize)
Definition blpapi_sessionoptions.h:1840
void setServiceDownloadTimeout(int timeoutMsecs)
Definition blpapi_sessionoptions.h:1898
void setConnectTimeout(unsigned int timeoutMilliSeconds)
Definition blpapi_sessionoptions.h:1767
void setClientMode(int clientMode)
Definition blpapi_sessionoptions.h:1797
Definition blpapi_socks5config.h:181
Definition blpapi_tlsoptions.h:296
constexpr const char * to_string(CorrelationId::ValueType valueType)
Definition blpapi_correlationid.h:830
Definition blpapi_abstractsession.h:448
std::ostream & operator<<(std::ostream &os, const CorrelationId &correlator)
Definition blpapi_correlationid.h:792
Definition blpapi_abstractsession.h:447
static int writeToStream(const char *data, int length, void *stream)
Definition blpapi_streamproxy.h:108