BLPAPI C++ 3.26.5
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
35
36#ifndef INCLUDED_BLPAPI_SESSIONOPTIONS
37#define INCLUDED_BLPAPI_SESSIONOPTIONS
38
97
98#ifndef INCLUDED_BLPAPI_CALL
99#include <blpapi_call.h>
100#endif
101
102#ifndef INCLUDED_BLPAPI_CORRELATIONID
103#include <blpapi_correlationid.h>
104#endif
105
106#ifndef INCLUDED_BLPAPI_DEFS
107#include <blpapi_defs.h>
108#endif
109
110#ifndef INCLUDED_BLPAPI_EXCEPTION
111#include <blpapi_exception.h>
112#endif
113
114#ifndef INCLUDED_BLPAPI_STREAMPROXY
115#include <blpapi_streamproxy.h>
116#endif
117
118#ifndef INCLUDED_BLPAPI_TLSOPTIONS
119#include <blpapi_tlsoptions.h>
120#endif
121
122#ifndef INCLUDED_BLPAPI_TYPES
123#include <blpapi_types.h>
124#endif
125
126#include <blpapi_authoptions.h>
127#include <blpapi_error.h>
128#include <blpapi_socks5config.h>
129
130#include <stddef.h>
131
132#ifdef __cplusplus
133
134extern "C" {
135#endif
136
138
141
142BLPAPI_EXPORT
143blpapi_SessionOptions_t *blpapi_SessionOptions_create(void);
144
145BLPAPI_EXPORT
146blpapi_SessionOptions_t *blpapi_SessionOptions_duplicate(
147 const blpapi_SessionOptions_t *parameters);
148
149BLPAPI_EXPORT
150void blpapi_SessionOptions_copy(
151 blpapi_SessionOptions_t *lhs, const blpapi_SessionOptions_t *rhs);
152
153BLPAPI_EXPORT
154void blpapi_SessionOptions_destroy(blpapi_SessionOptions_t *parameters);
155
156BLPAPI_EXPORT
157int blpapi_SessionOptions_setServerHost(
158 blpapi_SessionOptions_t *parameters, const char *serverHost);
159
160BLPAPI_EXPORT
161int blpapi_SessionOptions_setServerPort(
162 blpapi_SessionOptions_t *parameters, unsigned short serverPort);
163
164BLPAPI_EXPORT
165int blpapi_SessionOptions_setServerAddress(blpapi_SessionOptions_t *parameters,
166 const char *serverHost,
167 unsigned short serverPort,
168 size_t index);
169
170BLPAPI_EXPORT
171int blpapi_SessionOptions_setServerAddressWithProxy(
172 blpapi_SessionOptions_t *parameters,
173 const char *serverHost,
174 unsigned short serverPort,
175 const blpapi_Socks5Config_t *socks5Config,
176 size_t index);
177
178BLPAPI_EXPORT
179int blpapi_SessionOptions_removeServerAddress(
180 blpapi_SessionOptions_t *parameters, size_t index);
181
182BLPAPI_EXPORT
183int blpapi_SessionOptions_setConnectTimeout(
184 blpapi_SessionOptions_t *parameters,
185 unsigned int timeoutInMilliseconds);
186
187BLPAPI_EXPORT
188int blpapi_SessionOptions_setDefaultServices(
189 blpapi_SessionOptions_t *parameters, const char *defaultServices);
190
191BLPAPI_EXPORT
192int blpapi_SessionOptions_setDefaultSubscriptionService(
193 blpapi_SessionOptions_t *parameters, const char *serviceIdentifier);
194
195BLPAPI_EXPORT
196void blpapi_SessionOptions_setDefaultTopicPrefix(
197 blpapi_SessionOptions_t *parameters, const char *prefix);
198
199BLPAPI_EXPORT
200void blpapi_SessionOptions_setAllowMultipleCorrelatorsPerMsg(
201 blpapi_SessionOptions_t *parameters,
202 int allowMultipleCorrelatorsPerMsg);
203
204BLPAPI_EXPORT
205void blpapi_SessionOptions_setClientMode(
206 blpapi_SessionOptions_t *parameters, int clientMode);
207
208BLPAPI_EXPORT
209void blpapi_SessionOptions_setMaxPendingRequests(
210 blpapi_SessionOptions_t *parameters, int maxPendingRequests);
211
212BLPAPI_EXPORT
213void blpapi_SessionOptions_setAutoRestartOnDisconnection(
214 blpapi_SessionOptions_t *parameters, int autoRestart);
215
216BLPAPI_EXPORT
217void blpapi_SessionOptions_setAutoRestart(
218 blpapi_SessionOptions_t *parameters, int autoRestart);
219BLPAPI_EXPORT
220int blpapi_SessionOptions_setSessionIdentityOptions(
221 blpapi_SessionOptions_t *parameters,
222 const blpapi_AuthOptions_t *authOptions,
223 blpapi_CorrelationId_t *cid);
224
225BLPAPI_EXPORT
226void blpapi_SessionOptions_setAuthenticationOptions(
227 blpapi_SessionOptions_t *parameters, const char *authOptions);
228
229BLPAPI_EXPORT
230void blpapi_SessionOptions_setNumStartAttempts(
231 blpapi_SessionOptions_t *parameters, int numStartAttempts);
232
233BLPAPI_EXPORT
234void blpapi_SessionOptions_setMaxEventQueueSize(
235 blpapi_SessionOptions_t *parameters, size_t maxEventQueueSize);
236
237BLPAPI_EXPORT
238int blpapi_SessionOptions_setSlowConsumerWarningHiWaterMark(
239 blpapi_SessionOptions_t *parameters, float hiWaterMark);
240
241BLPAPI_EXPORT
242int blpapi_SessionOptions_setSlowConsumerWarningLoWaterMark(
243 blpapi_SessionOptions_t *parameters, float loWaterMark);
244
245BLPAPI_EXPORT
246int blpapi_SessionOptions_setDefaultKeepAliveInactivityTime(
247 blpapi_SessionOptions_t *parameters, int inactivityMsecs);
248
249BLPAPI_EXPORT
250int blpapi_SessionOptions_setDefaultKeepAliveResponseTimeout(
251 blpapi_SessionOptions_t *parameters, int timeoutMsecs);
252
253BLPAPI_EXPORT
254int blpapi_SessionOptions_setKeepAliveEnabled(
255 blpapi_SessionOptions_t *parameters, int isEnabled);
256
257BLPAPI_EXPORT
258void blpapi_SessionOptions_setRecordSubscriptionDataReceiveTimes(
259 blpapi_SessionOptions_t *parameters, int shouldRecord);
260
261BLPAPI_EXPORT
262int blpapi_SessionOptions_setServiceCheckTimeout(
263 blpapi_SessionOptions_t *paramaters, int timeoutMsecs);
264
265BLPAPI_EXPORT
266int blpapi_SessionOptions_setServiceDownloadTimeout(
267 blpapi_SessionOptions_t *paramaters, int timeoutMsecs);
268
269BLPAPI_EXPORT
270void blpapi_SessionOptions_setTlsOptions(blpapi_SessionOptions_t *paramaters,
271 const blpapi_TlsOptions_t *tlsOptions);
272
273BLPAPI_EXPORT
274int blpapi_SessionOptions_setFlushPublishedEventsTimeout(
275 blpapi_SessionOptions_t *paramaters, int timeoutMsecs);
276
277BLPAPI_EXPORT
278int blpapi_SessionOptions_setBandwidthSaveModeDisabled(
279 blpapi_SessionOptions_t *parameters, int disableBandwidthSaveMode);
280
281BLPAPI_EXPORT
282const char *blpapi_SessionOptions_serverHost(
283 blpapi_SessionOptions_t *parameters);
284
285BLPAPI_EXPORT
286unsigned int blpapi_SessionOptions_serverPort(
287 blpapi_SessionOptions_t *parameters);
288
289BLPAPI_EXPORT
290int blpapi_SessionOptions_numServerAddresses(
291 blpapi_SessionOptions_t *parameters);
292
293BLPAPI_EXPORT
294int blpapi_SessionOptions_getServerAddress(blpapi_SessionOptions_t *parameters,
295 const char **serverHost,
296 unsigned short *serverPort,
297 size_t index);
298
299BLPAPI_EXPORT
300int blpapi_SessionOptions_getServerAddressWithProxy(
301 blpapi_SessionOptions_t *parameters,
302 const char **serverHost,
303 unsigned short *serverPort,
304 const char **socks5Host,
305 unsigned short *sock5Port,
306 size_t index);
307
308BLPAPI_EXPORT
309unsigned int blpapi_SessionOptions_connectTimeout(
310 blpapi_SessionOptions_t *parameters);
311
312BLPAPI_EXPORT
313const char *blpapi_SessionOptions_defaultServices(
314 blpapi_SessionOptions_t *parameters);
315
316BLPAPI_EXPORT
317const char *blpapi_SessionOptions_defaultSubscriptionService(
318 blpapi_SessionOptions_t *parameters);
319
320BLPAPI_EXPORT
321const char *blpapi_SessionOptions_defaultTopicPrefix(
322 blpapi_SessionOptions_t *parameters);
323
324BLPAPI_EXPORT
325int blpapi_SessionOptions_allowMultipleCorrelatorsPerMsg(
326 blpapi_SessionOptions_t *parameters);
327
328BLPAPI_EXPORT
329int blpapi_SessionOptions_clientMode(blpapi_SessionOptions_t *parameters);
330
331BLPAPI_EXPORT
332int blpapi_SessionOptions_maxPendingRequests(
333 blpapi_SessionOptions_t *parameters);
334
335BLPAPI_EXPORT
336int blpapi_SessionOptions_autoRestartOnDisconnection(
337 blpapi_SessionOptions_t *parameters);
338
339BLPAPI_EXPORT
340int blpapi_SessionOptions_autoRestart(blpapi_SessionOptions_t *parameters);
341
342BLPAPI_EXPORT
343const char *blpapi_SessionOptions_authenticationOptions(
344 blpapi_SessionOptions_t *parameters);
345
346BLPAPI_EXPORT
347int blpapi_SessionOptions_numStartAttempts(
348 blpapi_SessionOptions_t *parameters);
349
350BLPAPI_EXPORT
351size_t blpapi_SessionOptions_maxEventQueueSize(
352 blpapi_SessionOptions_t *parameters);
353
354BLPAPI_EXPORT
355float blpapi_SessionOptions_slowConsumerWarningHiWaterMark(
356 blpapi_SessionOptions_t *parameters);
357
358BLPAPI_EXPORT
359float blpapi_SessionOptions_slowConsumerWarningLoWaterMark(
360 blpapi_SessionOptions_t *parameters);
361
362BLPAPI_EXPORT
363int blpapi_SessionOptions_defaultKeepAliveInactivityTime(
364 blpapi_SessionOptions_t *parameters);
365
366BLPAPI_EXPORT
367int blpapi_SessionOptions_defaultKeepAliveResponseTimeout(
368 blpapi_SessionOptions_t *parameters);
369
370BLPAPI_EXPORT
371int blpapi_SessionOptions_keepAliveEnabled(
372 blpapi_SessionOptions_t *parameters);
373
374BLPAPI_EXPORT
375int blpapi_SessionOptions_recordSubscriptionDataReceiveTimes(
376 blpapi_SessionOptions_t *parameters);
377
378BLPAPI_EXPORT
379int blpapi_SessionOptions_serviceCheckTimeout(
380 blpapi_SessionOptions_t *parameters);
381
382BLPAPI_EXPORT
383int blpapi_SessionOptions_serviceDownloadTimeout(
384 blpapi_SessionOptions_t *parameters);
385
386BLPAPI_EXPORT
387int blpapi_SessionOptions_print(blpapi_SessionOptions_t *parameters,
388 blpapi_StreamWriter_t streamWriter,
389 void *stream,
390 int indentLevel,
391 int spacesPerLevel);
392
393BLPAPI_EXPORT
394int blpapi_SessionOptions_flushPublishedEventsTimeout(
395 blpapi_SessionOptions_t *parameters);
396
397BLPAPI_EXPORT
398int blpapi_SessionOptions_bandwidthSaveModeDisabled(
399 blpapi_SessionOptions_t *parameters);
400
401BLPAPI_EXPORT
402int blpapi_SessionOptions_setApplicationIdentityKey(
403 blpapi_SessionOptions_t *parameters,
404 const char *applicationIdentityKey,
405 size_t size);
406BLPAPI_EXPORT
407int blpapi_SessionOptions_applicationIdentityKey(
408 const char **applicationIdentityKey,
409 size_t *size,
410 blpapi_SessionOptions_t *parameters);
411
412BLPAPI_EXPORT
413int blpapi_SessionOptions_setSessionName(blpapi_SessionOptions_t *parameters,
414 const char *sessionName,
415 size_t size);
416
417BLPAPI_EXPORT
418int blpapi_SessionOptions_sessionName(const char **sessionName,
419 size_t *size,
420 blpapi_SessionOptions_t *parameters);
421
424
425#ifdef __cplusplus
426}
427
434
435namespace BloombergLP {
436namespace blpapi {
437
448
449 blpapi_SessionOptions_t *d_handle_p;
450
451 public:
452 /*
453 * The possible options for how to connect to the API
454 */
455
457 AUTO = BLPAPI_CLIENTMODE_AUTO,
459
460 DAPI = BLPAPI_CLIENTMODE_DAPI,
462
463 SAPI = BLPAPI_CLIENTMODE_SAPI
465 };
466
471
472 SessionOptions(const SessionOptions& original);
476
481
482 // MANIPULATORS
483
489
490 void setServerHost(const char *host);
499
500 void setServerPort(unsigned short port);
506
508 const char *serverHost, unsigned short serverPort, size_t index);
516
517 int setServerAddress(const char *serverHost,
518 unsigned short serverPort,
519 const Socks5Config& socks5Config,
520 size_t index);
528
529 int removeServerAddress(size_t index);
533
534 void setConnectTimeout(unsigned int timeoutMilliSeconds);
541
542 void setDefaultServices(const char *defaultServices);
549
550 void setDefaultSubscriptionService(const char *serviceIdentifier);
561
562 void setDefaultTopicPrefix(const char *prefix);
570
584
585 void setClientMode(int clientMode);
593
599
601 const CorrelationId& correlationId = CorrelationId());
623
624 void setAuthenticationOptions(const char *authOptions);
628
635
636 void setAutoRestartOnDisconnection(bool autoRestart);
642
643 void setMaxEventQueueSize(size_t eventQueueSize);
651
652 void setSlowConsumerWarningHiWaterMark(float hiWaterMark);
665
666 void setSlowConsumerWarningLoWaterMark(float loWaterMark);
679
680 void setDefaultKeepAliveInactivityTime(int inactivityMsecs);
692
693 void setDefaultKeepAliveResponseTimeout(int timeoutMsecs);
705
706 void setKeepAliveEnabled(bool isEnabled);
717
718 void setRecordSubscriptionDataReceiveTimes(bool shouldRecord);
725
726 void setServiceCheckTimeout(int timeoutMsecs);
733
734 void setServiceDownloadTimeout(int timeoutMsecs);
741
742 void setTlsOptions(const TlsOptions& tlsOptions);
746
747 void setFlushPublishedEventsTimeout(int timeoutMsecs);
754
755 void setBandwidthSaveModeDisabled(bool isDisabled);
761
762 void setApplicationIdentityKey(const std::string& applicationIdentityKey);
767
768 void setSessionName(const std::string& sessionName);
775
776 // ACCESSORS
777 const char *serverHost() const;
783
784 unsigned short serverPort() const;
790
791 size_t numServerAddresses() const;
795
796 int getServerAddress(const char **serverHost,
797 unsigned short *serverPort,
798 size_t index) const;
804
805 int getServerAddress(const char **serverHost,
806 unsigned short *serverPort,
807 Socks5Config *socksConfig,
808 size_t index) const;
815
816 unsigned int connectTimeout() const;
821
822 const char *defaultServices() const;
826
827 const char *defaultSubscriptionService() const;
834
835 const char *defaultTopicPrefix() const;
841
847
848 int clientMode() const;
853
854 int maxPendingRequests() const;
859
860 blpapi_SessionOptions_t *handle() const;
864
865 bool autoRestartOnDisconnection() const;
869
870 const char *authenticationOptions() const;
874
875 int numStartAttempts() const;
880
881 size_t maxEventQueueSize() const;
886
887 float slowConsumerWarningHiWaterMark() const;
892
893 float slowConsumerWarningLoWaterMark() const;
898
904
910
911 bool keepAliveEnabled() const;
916
923
924 int serviceCheckTimeout() const;
929
930 int serviceDownloadTimeout() const;
935
936 int flushPublishedEventsTimeout() const;
941
942 bool bandwidthSaveModeDisabled() const;
947
948 std::string applicationIdentityKey();
953
954 std::string sessionName();
958
959 std::ostream& print(std::ostream& stream,
960 int indentLevel = 0,
961 int spacesPerLevel = 4) const;
974};
975
978
979// FREE OPERATORS
980std::ostream& operator<<(
981 std::ostream& stream, const SessionOptions& sessionOptions);
993
994// ============================================================================
995// INLINE FUNCTION DEFINITIONS
996// ============================================================================
997
998// --------------------
999// class SessionOptions
1000// --------------------
1002{
1003 d_handle_p = blpapi_SessionOptions_create();
1004#if BLPAPI_COMPAT_33X
1005 blpapi_SessionOptions_setClientMode(
1006 d_handle_p, BLPAPI_CLIENTMODE_AUTO | BLPAPI_CLIENTMODE_COMPAT_33X);
1007#endif
1008}
1009
1011{
1012 d_handle_p = blpapi_SessionOptions_duplicate(options.handle());
1013}
1014
1016{
1017 blpapi_SessionOptions_destroy(d_handle_p);
1018}
1019
1021{
1022 blpapi_SessionOptions_copy(this->handle(), rhs.handle());
1023 return *this;
1024}
1025
1026inline void SessionOptions::setServerHost(const char *newServerHost)
1027{
1028 blpapi_SessionOptions_setServerHost(d_handle_p, newServerHost);
1029}
1030
1031inline void SessionOptions::setServerPort(unsigned short newServerPort)
1032{
1033 blpapi_SessionOptions_setServerPort(d_handle_p, newServerPort);
1034}
1035
1037 const char *serverHost, unsigned short serverPort, size_t index)
1038{
1039 return blpapi_SessionOptions_setServerAddress(
1040 d_handle_p, serverHost, serverPort, index);
1041}
1042
1044 unsigned short serverPort,
1045 const Socks5Config& socks5Config,
1046 size_t index)
1047{
1048 return BLPAPI_CALL(blpapi_SessionOptions_setServerAddressWithProxy)(
1049 d_handle_p, serverHost, serverPort, socks5Config.impl(), index);
1050}
1051
1053{
1054 return blpapi_SessionOptions_removeServerAddress(d_handle_p, index);
1055}
1056
1057inline void SessionOptions::setConnectTimeout(unsigned int timeoutMilliSeconds)
1058{
1059 ExceptionUtil::throwOnError(blpapi_SessionOptions_setConnectTimeout(
1060 d_handle_p, timeoutMilliSeconds));
1061}
1062
1063inline void SessionOptions::setDefaultServices(const char *newDefaultServices)
1064{
1065 blpapi_SessionOptions_setDefaultServices(d_handle_p, newDefaultServices);
1066}
1067
1069 const char *serviceIdentifier)
1070{
1071 blpapi_SessionOptions_setDefaultSubscriptionService(
1072 d_handle_p, serviceIdentifier);
1073}
1074
1075inline void SessionOptions::setDefaultTopicPrefix(const char *prefix)
1076{
1077 blpapi_SessionOptions_setDefaultTopicPrefix(d_handle_p, prefix);
1078}
1079
1081 bool newAllowMultipleCorrelatorsPerMsg)
1082{
1083 blpapi_SessionOptions_setAllowMultipleCorrelatorsPerMsg(
1084 d_handle_p, newAllowMultipleCorrelatorsPerMsg);
1085}
1086
1087inline void SessionOptions::setClientMode(int newClientMode)
1088{
1089#if BLPAPI_COMPAT_33X
1090 newClientMode |= BLPAPI_CLIENTMODE_COMPAT_33X;
1091#endif
1092
1093 blpapi_SessionOptions_setClientMode(d_handle_p, newClientMode);
1094}
1095
1096inline void SessionOptions::setMaxPendingRequests(int newMaxPendingRequests)
1097{
1098 blpapi_SessionOptions_setMaxPendingRequests(
1099 d_handle_p, newMaxPendingRequests);
1100}
1101
1103{
1104 blpapi_SessionOptions_setAutoRestartOnDisconnection(
1105 d_handle_p, autoRestart ? 1 : 0);
1106}
1107
1109 const AuthOptions& authOptions, const CorrelationId& cid)
1110{
1111 blpapi_CorrelationId_t cidHandle = cid.impl();
1112
1114 BLPAPI_CALL(blpapi_SessionOptions_setSessionIdentityOptions)(
1115 d_handle_p, authOptions.handle(), &cidHandle));
1116
1117 return CorrelationId(cidHandle);
1118}
1119
1120inline void SessionOptions::setAuthenticationOptions(const char *authOptions)
1121{
1122 blpapi_SessionOptions_setAuthenticationOptions(d_handle_p, authOptions);
1123}
1124
1125inline void SessionOptions::setNumStartAttempts(int newNumStartAttempts)
1126{
1127 blpapi_SessionOptions_setNumStartAttempts(d_handle_p, newNumStartAttempts);
1128}
1129
1130inline void SessionOptions::setMaxEventQueueSize(size_t eventQueueSize)
1131{
1133 d_handle_p, eventQueueSize);
1134}
1135
1137 float hiWaterMark)
1138{
1141 d_handle_p, hiWaterMark));
1142}
1143
1145 float loWaterMark)
1146{
1149 d_handle_p, loWaterMark));
1150}
1151
1153 int inactivityTime)
1154{
1157 d_handle_p, inactivityTime));
1158}
1159
1161 int responseTimeout)
1162{
1165 d_handle_p, responseTimeout));
1166}
1167
1168inline void SessionOptions::setKeepAliveEnabled(bool isEnabled)
1169{
1171 d_handle_p, isEnabled));
1172}
1173
1175 bool shouldRecrod)
1176{
1178 d_handle_p, shouldRecrod);
1179}
1180
1181inline void SessionOptions::setServiceCheckTimeout(int timeoutMsecs)
1182{
1184 BLPAPI_CALL(blpapi_SessionOptions_setServiceCheckTimeout)(
1185 d_handle_p, timeoutMsecs));
1186}
1187
1189{
1191 BLPAPI_CALL(blpapi_SessionOptions_setServiceDownloadTimeout)(
1192 d_handle_p, timeoutMsecs));
1193}
1194
1195inline void SessionOptions::setTlsOptions(const TlsOptions& tlsOptions)
1196{
1197 BLPAPI_CALL(blpapi_SessionOptions_setTlsOptions)
1198 (d_handle_p, tlsOptions.handle());
1199}
1200
1202{
1204 BLPAPI_CALL(blpapi_SessionOptions_setFlushPublishedEventsTimeout)(
1205 d_handle_p, timeoutMsecs));
1206}
1207
1214
1215inline const char *SessionOptions::serverHost() const
1216{
1217 return blpapi_SessionOptions_serverHost(d_handle_p);
1218}
1219
1220inline unsigned short SessionOptions::serverPort() const
1221{
1222 return static_cast<unsigned short>(
1223 blpapi_SessionOptions_serverPort(d_handle_p));
1224}
1225
1227{
1228 return static_cast<size_t>(
1229 blpapi_SessionOptions_numServerAddresses(d_handle_p));
1230}
1231
1232inline int SessionOptions::getServerAddress(const char **serverHostOut,
1233 unsigned short *serverPortOut,
1234 size_t index) const
1235{
1236 return blpapi_SessionOptions_getServerAddress(
1237 d_handle_p, serverHostOut, serverPortOut, index);
1238}
1239
1240inline int SessionOptions::getServerAddress(const char **serverHostOut,
1241 unsigned short *serverPortOut,
1242 Socks5Config *socksConfig,
1243 size_t index) const
1244{
1245 const char *socks5ConfigHost = 0;
1246 unsigned short socks5ConfigPort = 0;
1248 blpapi_SessionOptions_getServerAddressWithProxy)(d_handle_p,
1249 serverHostOut,
1250 serverPortOut,
1251 &socks5ConfigHost,
1252 &socks5ConfigPort,
1253 index));
1254
1255 if (socks5ConfigHost) {
1256 *socksConfig = Socks5Config(socks5ConfigHost, socks5ConfigPort);
1257 }
1258
1259 return 0;
1260}
1261
1262inline unsigned int SessionOptions::connectTimeout() const
1263{
1264 return blpapi_SessionOptions_connectTimeout(d_handle_p);
1265}
1266
1267inline const char *SessionOptions::defaultServices() const
1268{
1269 return blpapi_SessionOptions_defaultServices(d_handle_p);
1270}
1271
1273{
1274 return blpapi_SessionOptions_defaultSubscriptionService(d_handle_p);
1275}
1276
1277inline const char *SessionOptions::defaultTopicPrefix() const
1278{
1279 return blpapi_SessionOptions_defaultTopicPrefix(d_handle_p);
1280}
1281
1283{
1284 return blpapi_SessionOptions_allowMultipleCorrelatorsPerMsg(d_handle_p)
1285 ? true
1286 : false;
1287}
1288
1290{
1291 return blpapi_SessionOptions_clientMode(d_handle_p);
1292}
1293
1295{
1296 return blpapi_SessionOptions_maxPendingRequests(d_handle_p);
1297}
1298
1300{
1301 return blpapi_SessionOptions_autoRestartOnDisconnection(d_handle_p) != 0;
1302}
1303
1305{
1306 return blpapi_SessionOptions_authenticationOptions(d_handle_p);
1307}
1308
1310{
1311 return blpapi_SessionOptions_numStartAttempts(d_handle_p);
1312}
1313
1315{
1317}
1318
1323
1328
1334
1340
1342{
1343 return BLPAPI_CALL_SESSIONOPTIONS_KEEPALIVEENABLED(d_handle_p) != 0
1344 ? true
1345 : false;
1346}
1347
1349{
1351 d_handle_p)
1352 ? true
1353 : false;
1354}
1355
1357{
1358 return BLPAPI_CALL(blpapi_SessionOptions_serviceCheckTimeout)(d_handle_p);
1359}
1360
1362{
1363 return BLPAPI_CALL(blpapi_SessionOptions_serviceDownloadTimeout)(
1364 d_handle_p);
1365}
1366
1368{
1369 return BLPAPI_CALL(blpapi_SessionOptions_flushPublishedEventsTimeout)(
1370 d_handle_p);
1371}
1372
1374{
1376 != 0
1377 ? true
1378 : false;
1379}
1380
1382 const std::string& applicationIdentityKey)
1383{
1385 blpapi_SessionOptions_setApplicationIdentityKey)(d_handle_p,
1387 static_cast<int>(applicationIdentityKey.size())));
1388}
1389
1391{
1392 const char *aik;
1393 size_t size;
1395 BLPAPI_CALL(blpapi_SessionOptions_applicationIdentityKey)(
1396 &aik, &size, d_handle_p));
1397 return std::string(aik, size);
1398}
1399
1400inline void SessionOptions::setSessionName(const std::string& sessionName)
1401{
1403 BLPAPI_CALL(blpapi_SessionOptions_setSessionName)(
1404 d_handle_p, sessionName.data(), sessionName.size()));
1405}
1406
1408{
1409 const char *sessionName = nullptr;
1410 size_t size = 0;
1411 ExceptionUtil::throwOnError(BLPAPI_CALL(blpapi_SessionOptions_sessionName)(
1412 &sessionName, &size, d_handle_p));
1413 return std::string(sessionName, size);
1414}
1415
1416inline blpapi_SessionOptions_t *SessionOptions::handle() const
1417{
1418 return d_handle_p;
1419}
1420
1421inline std::ostream& SessionOptions::print(
1422 std::ostream& stream, int indentLevel, int spacesPerLevel) const
1423{
1424 if (BLPAPI_CALL_AVAILABLE(blpapi_SessionOptions_print)) {
1425 BLPAPI_CALL(blpapi_SessionOptions_print)
1426 (d_handle_p,
1428 &stream,
1429 indentLevel,
1430 spacesPerLevel);
1431 }
1432 return stream;
1433}
1434
1435inline std::ostream& operator<<(
1436 std::ostream& stream, const SessionOptions& sessionOptions)
1437{
1438 return sessionOptions.print(stream, 0, -1);
1439}
1440
1441} // close namespace blpapi
1442} // close namespace BloombergLP
1443
1444#endif // #ifdef __cplusplus
1445#endif // #ifndef INCLUDED_BLPAPI_SESSIONOPTIONS
Provides configuration settings for authorization.
Provide functions for dispatchtbl.
#define BLPAPI_CALL_SESSIONOPTIONS_SETMAXEVENTQUEUESIZE(a1, a2)
Definition blpapi_call.h:370
#define BLPAPI_CALL_SESSIONOPTION_RECORDSUBSCRIPTIONDATARECEIVETIMES(a1)
Definition blpapi_call.h:466
#define BLPAPI_CALL_SESSIONOPTIONS_DEFAULTKEEPALIVERESPONSETIMEOUT(a1)
Definition blpapi_call.h:388
#define BLPAPI_CALL_SESSIONOPTIONS_SLOWCONSUMERLOWATERMARK(a1)
Definition blpapi_call.h:383
#define BLPAPI_CALL_SESSIONOPTIONS_SETBANDWIDTHSAVEMODEDISABLED(a1, a2)
Definition blpapi_call.h:398
#define BLPAPI_CALL_SESSIONOPTION_SETRECORDSUBSCRIPTIONDATARECEIVETIMES( a1, a2)
Definition blpapi_call.h:463
#define BLPAPI_CALL_SESSIONOPTIONS_DEFAULTKEEPALIVEINACTIVITYTIME(a1)
Definition blpapi_call.h:386
#define BLPAPI_CALL_SESSIONOPTIONS_SETDEFAULTKEEPALIVEINACTIVITYTIME(a1, a2)
Definition blpapi_call.h:392
#define BLPAPI_CALL_SESSIONOPTIONS_SETSLOWCONSUMERHIWATERMARK(a1, a2)
Definition blpapi_call.h:372
#define BLPAPI_CALL_SESSIONOPTIONS_MAXEVENTQUEUESIZE(a1)
Definition blpapi_call.h:379
#define BLPAPI_CALL_AVAILABLE(FUNCNAME)
Definition blpapi_call.h:360
#define BLPAPI_CALL_SESSIONOPTIONS_SETDEFAULTKEEPALIVERESPONSETIMEOUT(a1, a2)
Definition blpapi_call.h:394
#define BLPAPI_CALL_SESSIONOPTIONS_KEEPALIVEENABLED(a1)
Definition blpapi_call.h:390
#define BLPAPI_CALL_SESSIONOPTIONS_SLOWCONSUMERHIWATERMARK(a1)
Definition blpapi_call.h:381
#define BLPAPI_CALL(FUNCNAME)
Definition blpapi_call.h:361
#define BLPAPI_CALL_SESSIONOPTIONS_BANDWIDTHSAVEMODEDISABLED(a1)
Definition blpapi_call.h:400
#define BLPAPI_CALL_SESSIONOPTIONS_SETKEEPALIVEENABLED(a1, a2)
Definition blpapi_call.h:396
#define BLPAPI_CALL_SESSIONOPTIONS_SETSLOWCONSUMERLOWATERMARK(a1, a2)
Definition blpapi_call.h:374
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:210
blpapi_AuthOptions_t * handle() const
Definition blpapi_authoptions.h:507
Definition blpapi_correlationid.h:225
static void throwOnError(int errorCode)
Definition blpapi_exception.h:541
Definition blpapi_sessionoptions.h:447
std::string applicationIdentityKey()
Definition blpapi_sessionoptions.h:1390
size_t numServerAddresses() const
Definition blpapi_sessionoptions.h:1226
void setNumStartAttempts(int numStartAttempts)
Definition blpapi_sessionoptions.h:1125
bool autoRestartOnDisconnection() const
Definition blpapi_sessionoptions.h:1299
void setDefaultSubscriptionService(const char *serviceIdentifier)
Definition blpapi_sessionoptions.h:1068
void setDefaultServices(const char *defaultServices)
Definition blpapi_sessionoptions.h:1063
int numStartAttempts() const
Definition blpapi_sessionoptions.h:1309
int setServerAddress(const char *serverHost, unsigned short serverPort, size_t index)
Definition blpapi_sessionoptions.h:1036
void setFlushPublishedEventsTimeout(int timeoutMsecs)
Definition blpapi_sessionoptions.h:1201
int getServerAddress(const char **serverHost, unsigned short *serverPort, size_t index) const
Definition blpapi_sessionoptions.h:1232
void setMaxPendingRequests(int maxPendingRequests)
Definition blpapi_sessionoptions.h:1096
std::string sessionName()
Definition blpapi_sessionoptions.h:1407
int serviceCheckTimeout() const
Definition blpapi_sessionoptions.h:1356
bool allowMultipleCorrelatorsPerMsg() const
Definition blpapi_sessionoptions.h:1282
void setBandwidthSaveModeDisabled(bool isDisabled)
Definition blpapi_sessionoptions.h:1208
const char * defaultServices() const
Definition blpapi_sessionoptions.h:1267
void setDefaultKeepAliveInactivityTime(int inactivityMsecs)
Definition blpapi_sessionoptions.h:1152
SessionOptions & operator=(const SessionOptions &rhs)
Definition blpapi_sessionoptions.h:1020
void setAuthenticationOptions(const char *authOptions)
Definition blpapi_sessionoptions.h:1120
bool keepAliveEnabled() const
Definition blpapi_sessionoptions.h:1341
SessionOptions()
Definition blpapi_sessionoptions.h:1001
const char * serverHost() const
Definition blpapi_sessionoptions.h:1215
unsigned short serverPort() const
Definition blpapi_sessionoptions.h:1220
void setServiceCheckTimeout(int timeoutMsecs)
Definition blpapi_sessionoptions.h:1181
void setServerHost(const char *host)
Definition blpapi_sessionoptions.h:1026
float slowConsumerWarningHiWaterMark() const
Definition blpapi_sessionoptions.h:1319
~SessionOptions()
Definition blpapi_sessionoptions.h:1015
void setAutoRestartOnDisconnection(bool autoRestart)
Definition blpapi_sessionoptions.h:1102
void setTlsOptions(const TlsOptions &tlsOptions)
Definition blpapi_sessionoptions.h:1195
ClientMode
Definition blpapi_sessionoptions.h:456
@ SAPI
Always connect to the server API.
Definition blpapi_sessionoptions.h:463
@ DAPI
Always connect to the desktop API.
Definition blpapi_sessionoptions.h:460
@ AUTO
Automatic (desktop if available otherwise server)
Definition blpapi_sessionoptions.h:457
int maxPendingRequests() const
Definition blpapi_sessionoptions.h:1294
const char * defaultTopicPrefix() const
Definition blpapi_sessionoptions.h:1277
int removeServerAddress(size_t index)
Definition blpapi_sessionoptions.h:1052
blpapi_SessionOptions_t * handle() const
Definition blpapi_sessionoptions.h:1416
void setRecordSubscriptionDataReceiveTimes(bool shouldRecord)
Definition blpapi_sessionoptions.h:1174
CorrelationId setSessionIdentityOptions(const AuthOptions &authOptions, const CorrelationId &correlationId=CorrelationId())
Definition blpapi_sessionoptions.h:1108
void setKeepAliveEnabled(bool isEnabled)
Definition blpapi_sessionoptions.h:1168
void setServerPort(unsigned short port)
Definition blpapi_sessionoptions.h:1031
bool bandwidthSaveModeDisabled() const
Definition blpapi_sessionoptions.h:1373
int clientMode() const
Definition blpapi_sessionoptions.h:1289
void setSlowConsumerWarningLoWaterMark(float loWaterMark)
Definition blpapi_sessionoptions.h:1144
void setAllowMultipleCorrelatorsPerMsg(bool allowMultipleCorrelatorsPerMsg)
Definition blpapi_sessionoptions.h:1080
int defaultKeepAliveResponseTimeout() const
Definition blpapi_sessionoptions.h:1335
unsigned int connectTimeout() const
Definition blpapi_sessionoptions.h:1262
float slowConsumerWarningLoWaterMark() const
Definition blpapi_sessionoptions.h:1324
std::ostream & print(std::ostream &stream, int indentLevel=0, int spacesPerLevel=4) const
Definition blpapi_sessionoptions.h:1421
void setSlowConsumerWarningHiWaterMark(float hiWaterMark)
Definition blpapi_sessionoptions.h:1136
size_t maxEventQueueSize() const
Definition blpapi_sessionoptions.h:1314
bool recordSubscriptionDataReceiveTimes() const
Definition blpapi_sessionoptions.h:1348
void setSessionName(const std::string &sessionName)
Definition blpapi_sessionoptions.h:1400
const char * defaultSubscriptionService() const
Definition blpapi_sessionoptions.h:1272
void setDefaultKeepAliveResponseTimeout(int timeoutMsecs)
Definition blpapi_sessionoptions.h:1160
int serviceDownloadTimeout() const
Definition blpapi_sessionoptions.h:1361
const char * authenticationOptions() const
Definition blpapi_sessionoptions.h:1304
void setApplicationIdentityKey(const std::string &applicationIdentityKey)
Definition blpapi_sessionoptions.h:1381
void setDefaultTopicPrefix(const char *prefix)
Definition blpapi_sessionoptions.h:1075
int flushPublishedEventsTimeout() const
Definition blpapi_sessionoptions.h:1367
int defaultKeepAliveInactivityTime() const
Definition blpapi_sessionoptions.h:1329
void setMaxEventQueueSize(size_t eventQueueSize)
Definition blpapi_sessionoptions.h:1130
void setServiceDownloadTimeout(int timeoutMsecs)
Definition blpapi_sessionoptions.h:1188
void setConnectTimeout(unsigned int timeoutMilliSeconds)
Definition blpapi_sessionoptions.h:1057
void setClientMode(int clientMode)
Definition blpapi_sessionoptions.h:1087
Definition blpapi_socks5config.h:130
Definition blpapi_tlsoptions.h:204
blpapi_TlsOptions_t * handle() const
Definition blpapi_tlsoptions.h:360
Definition blpapi_abstractsession.h:212
std::ostream & operator<<(std::ostream &os, const CorrelationId &correlator)
Definition blpapi_correlationid.h:680
Definition blpapi_abstractsession.h:211
static int writeToStream(const char *data, int length, void *stream)
Definition blpapi_streamproxy.h:109