BLPAPI C++ 3.26.5
Loading...
Searching...
No Matches
blpapi_call.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_CALL
37#define INCLUDED_BLPAPI_CALL
38
56#ifdef __cplusplus
57
58// We only support dispatchtbl on windows currently
59#if defined(_WIN32) || defined(__WIN32__) || defined(BLPAPI_FORCE_DISPATCHTBL)
60#include <blpapi_dispatchtbl.h>
61#include <blpapi_exception.h>
62
63// NOTE: The following macros are used to avoid direct dependencies
64// on functions that may not be available in an old DLL.
65
66#define BLPAPI_TABLE_CHECK(FUNCNAME) \
67 ((g_blpapiFunctionTableSize \
68 && offsetof(blpapi_FunctionEntries_t, FUNCNAME) \
69 < g_blpapiFunctionTableSize - 1) \
70 ? 1 \
71 : 0)
72
73#define BLPAPI_TABLE_CALL(FUNCNAME) \
74 (BLPAPI_TABLE_CHECK(FUNCNAME) ? BLPAPI_CALL_UNCHECKED(FUNCNAME) \
75 : BLPAPI_UNSUPPORTED_CALL(FUNCNAME))
76
77#define BLPAPI_CALL_AVAILABLE(FUNCNAME) BLPAPI_TABLE_CHECK(FUNCNAME)
78#define BLPAPI_CALL(FUNCNAME) BLPAPI_TABLE_CALL(FUNCNAME)
79#define BLPAPI_CALL_UNCHECKED(FUNCNAME) g_blpapiFunctionEntries.FUNCNAME
80
81#define BLPAPI_UNSUPPORTED_CALL(FUNCNAME) \
82 (throw UnsupportedOperationException(#FUNCNAME " not supported"))
83
84#define BLPAPI_CALL_EVENTFORMATTER_APPENDMESSAGESEQ(a1, a2, a3, a4, a5, a6) \
85 (BLPAPI_TABLE_CALL(blpapi_EventFormatter_appendMessageSeq)( \
86 a1, a2, a3, a4, a5, a6))
87
88#define BLPAPI_CALL_EVENTFORMATTER_APPENDRECAPMESSAGESEQ(a1, a2, a3, a4, a5) \
89 (BLPAPI_TABLE_CALL(blpapi_EventFormatter_appendRecapMessageSeq)( \
90 a1, a2, a3, a4, a5))
91
92#define BLPAPI_CALL_MESSAGE_ADDREF(a1) \
93 (BLPAPI_TABLE_CHECK(blpapi_Message_addRef) \
94 ? g_blpapiFunctionEntries.blpapi_Message_addRef(a1) \
95 : 0)
96
97#define BLPAPI_CALL_MESSAGE_RELEASE(a1) \
98 (BLPAPI_TABLE_CHECK(blpapi_Message_release) \
99 ? g_blpapiFunctionEntries.blpapi_Message_release(a1) \
100 : 0)
101
102#define BLPAPI_CALL_SESSIONOPTIONS_SETMAXEVENTQUEUESIZE(a1, a2) \
103 (BLPAPI_TABLE_CHECK(blpapi_SessionOptions_setMaxEventQueueSize) \
104 ? g_blpapiFunctionEntries \
105 .blpapi_SessionOptions_setMaxEventQueueSize( \
106 a1, a2) \
107 : (void)0)
108
109#define BLPAPI_CALL_SESSIONOPTIONS_SETSLOWCONSUMERHIWATERMARK(a1, a2) \
110 (BLPAPI_TABLE_CHECK( \
111 blpapi_SessionOptions_setSlowConsumerWarningHiWaterMark) \
112 ? g_blpapiFunctionEntries \
113 .blpapi_SessionOptions_setSlowConsumerWarningHiWaterMark( \
114 a1, a2) \
115 : 0)
116
117#define BLPAPI_CALL_SESSIONOPTIONS_SETSLOWCONSUMERLOWATERMARK(a1, a2) \
118 (BLPAPI_TABLE_CHECK( \
119 blpapi_SessionOptions_setSlowConsumerWarningLoWaterMark) \
120 ? g_blpapiFunctionEntries \
121 .blpapi_SessionOptions_setSlowConsumerWarningLoWaterMark( \
122 a1, a2) \
123 : 0)
124
125#define BLPAPI_CALL_REQUEST_SETPREFERREDROUTE(a1, a2) \
126 do { \
127 if (BLPAPI_TABLE_CHECK(blpapi_Request_setPreferredRoute)) \
128 g_blpapiFunctionEntries.blpapi_Request_setPreferredRoute(a1, a2); \
129 } while (0)
130
131#define BLPAPI_CALL_MESSAGE_FRAGMENTTYPE(a1) \
132 (BLPAPI_TABLE_CHECK(blpapi_Message_fragmentType) \
133 ? g_blpapiFunctionEntries.blpapi_Message_fragmentType(a1) \
134 : 0)
135
136#define BLPAPI_CALL_SESSIONOPTIONS_MAXEVENTQUEUESIZE(a1) \
137 (BLPAPI_TABLE_CHECK(blpapi_SessionOptions_maxEventQueueSize) \
138 ? g_blpapiFunctionEntries \
139 .blpapi_SessionOptions_maxEventQueueSize(a1) \
140 : ULONG_MAX)
141
142#define BLPAPI_CALL_SESSIONOPTIONS_SLOWCONSUMERHIWATERMARK(a1) \
143 (BLPAPI_TABLE_CHECK(blpapi_SessionOptions_slowConsumerWarningHiWaterMark) \
144 ? g_blpapiFunctionEntries \
145 .blpapi_SessionOptions_slowConsumerWarningHiWaterMark( \
146 a1) \
147 : 1.0f)
148
149#define BLPAPI_CALL_SESSIONOPTIONS_SLOWCONSUMERLOWATERMARK(a1) \
150 (BLPAPI_TABLE_CHECK(blpapi_SessionOptions_slowConsumerWarningLoWaterMark) \
151 ? g_blpapiFunctionEntries \
152 .blpapi_SessionOptions_slowConsumerWarningLoWaterMark( \
153 a1) \
154 : 0.0f)
155
156#define BLPAPI_CALL_SESSIONOPTIONS_DEFAULTKEEPALIVEINACTIVITYTIME(h) \
157 (BLPAPI_TABLE_CHECK(blpapi_SessionOptions_defaultKeepAliveInactivityTime) \
158 ? g_blpapiFunctionEntries \
159 .blpapi_SessionOptions_defaultKeepAliveInactivityTime( \
160 h) \
161 : INT_MAX)
162
163#define BLPAPI_CALL_SESSIONOPTIONS_DEFAULTKEEPALIVERESPONSETIMEOUT(h) \
164 (BLPAPI_TABLE_CHECK( \
165 blpapi_SessionOptions_defaultKeepAliveResponseTimeout) \
166 ? g_blpapiFunctionEntries \
167 .blpapi_SessionOptions_defaultKeepAliveResponseTimeout( \
168 h) \
169 : INT_MAX)
170
171#define BLPAPI_CALL_SESSIONOPTIONS_KEEPALIVEENABLED(h) \
172 (BLPAPI_TABLE_CHECK(blpapi_SessionOptions_keepAliveEnabled) \
173 ? g_blpapiFunctionEntries \
174 .blpapi_SessionOptions_keepAliveEnabled(h) \
175 : 1)
176
177#define BLPAPI_CALL_SESSIONOPTIONS_BANDWIDTHSAVEMODEDISABLED(a1) \
178 (BLPAPI_TABLE_CHECK(blpapi_SessionOptions_bandwidthSaveModeDisabled) \
179 ? g_blpapiFunctionEntries \
180 .blpapi_SessionOptions_bandwidthSaveModeDisabled( \
181 a1) \
182 : 1)
183
184#define BLPAPI_CALL_SESSIONOPTIONS_SETDEFAULTKEEPALIVEINACTIVITYTIME(h, t) \
185 (BLPAPI_TABLE_CHECK( \
186 blpapi_SessionOptions_setDefaultKeepAliveInactivityTime) \
187 ? g_blpapiFunctionEntries \
188 .blpapi_SessionOptions_setDefaultKeepAliveInactivityTime( \
189 h, t) \
190 : 0)
191
192#define BLPAPI_CALL_SESSIONOPTIONS_SETDEFAULTKEEPALIVERESPONSETIMEOUT(h, t) \
193 (BLPAPI_TABLE_CHECK( \
194 blpapi_SessionOptions_setDefaultKeepAliveResponseTimeout) \
195 ? g_blpapiFunctionEntries \
196 .blpapi_SessionOptions_setDefaultKeepAliveResponseTimeout( \
197 h, t) \
198 : 0)
199
200#define BLPAPI_CALL_SESSIONOPTIONS_SETKEEPALIVEENABLED(h, t) \
201 (BLPAPI_TABLE_CHECK(blpapi_SessionOptions_setKeepAliveEnabled) \
202 ? g_blpapiFunctionEntries \
203 .blpapi_SessionOptions_setKeepAliveEnabled( \
204 h, t) \
205 : 0)
206
207#define BLPAPI_CALL_SESSIONOPTIONS_SETBANDWIDTHSAVEMODEDISABLED(a1, a2) \
208 (BLPAPI_TABLE_CHECK(blpapi_SessionOptions_setBandwidthSaveModeDisabled) \
209 ? g_blpapiFunctionEntries \
210 .blpapi_SessionOptions_setBandwidthSaveModeDisabled( \
211 a1, a2) \
212 : 0)
213
214#define BLPAPI_CALL_HIGHPRECISIONDATETIME_COMPARE(a1, a2) \
215 (BLPAPI_TABLE_CHECK(blpapi_HighPrecisionDatetime_compare) \
216 ? g_blpapiFunctionEntries \
217 .blpapi_HighPrecisionDatetime_compare(a1, a2) \
218 : blpapi_Datetime_compare( \
219 (a1)->datetime, (a2)->datetime))
220
221#define BLPAPI_CALL_HIGHPRECISIONDATETIME_PRINT(a1, a2, a3, a4, a5) \
222 (BLPAPI_TABLE_CHECK(blpapi_HighPrecisionDatetime_print) \
223 ? g_blpapiFunctionEntries \
224 .blpapi_HighPrecisionDatetime_print( \
225 a1, a2, a3, a4, a5) \
226 : blpapi_Datetime_print( \
227 &((a1)->datetime), a2, a3, a4, a5))
228
229#define BLPAPI_CALL_ELEMENT_SETVALUEHIGHPRECISIONDATETIME(a1, a2, a3) \
230 (BLPAPI_TABLE_CHECK(blpapi_Element_setValueHighPrecisionDatetime) \
231 ? g_blpapiFunctionEntries \
232 .blpapi_Element_setValueHighPrecisionDatetime( \
233 a1, a2, a3) \
234 : blpapi_Element_setValueDatetime( \
235 a1, &((a2)->datetime), a3))
236
237#define BLPAPI_CALL_ELEMENT_SETELEMENTHIGHPRECISIONDATETIME(a1, a2, a3, a4) \
238 (BLPAPI_TABLE_CHECK(blpapi_Element_setElementHighPrecisionDatetime) \
239 ? g_blpapiFunctionEntries \
240 .blpapi_Element_setElementHighPrecisionDatetime( \
241 a1, a2, a3, a4) \
242 : blpapi_Element_setElementDatetime( \
243 a1, a2, a3, &((a4)->datetime)))
244
245#define BLPAPI_CALL_ELEMENT_GETVALUEASHIGHPRECISIONDATETIME(a1, a2, a3) \
246 if (BLPAPI_TABLE_CHECK(blpapi_Element_getValueAsHighPrecisionDatetime)) { \
247 return g_blpapiFunctionEntries \
248 .blpapi_Element_getValueAsHighPrecisionDatetime( \
249 a1, &(a2)->rawHighPrecisionValue(), a3); \
250 } else { \
251 buffer->rawHighPrecisionValue().picoseconds = 0; \
252 return blpapi_Element_getValueAsDatetime(a1, &(a2)->rawValue(), a3); \
253 }
254
255#define BLPAPI_CALL_SESSION_RESUBSCRIBEWITHID(a1, a2, a3, a4, a5) \
256 (BLPAPI_TABLE_CHECK(blpapi_Session_resubscribeWithId) \
257 ? g_blpapiFunctionEntries \
258 .blpapi_Session_resubscribeWithId( \
259 a1, a2, a3, a4, a5) \
260 : blpapi_Session_resubscribe(a1, a2, a4, a5))
261
262#define BLPAPI_CALL_EVENTFORMATTER_SETVALUENULL(a1, a2, a3) \
263 (BLPAPI_TABLE_CALL(blpapi_EventFormatter_setValueNull)(a1, a2, a3))
264
265#define BLPAPI_CALL_DIAGNOSTICSUTIL_MEMORYINFO(a1, a2) \
266 if (BLPAPI_TABLE_CHECK(blpapi_DiagnosticsUtil_memoryInfo)) { \
267 return g_blpapiFunctionEntries.blpapi_DiagnosticsUtil_memoryInfo( \
268 a1, a2); \
269 } else { \
270 return -1; \
271 }
272
273#define BLPAPI_CALL_SUBSCRIPTIONLIST_ADDRESOLVED(a1, a2, a3) \
274 (BLPAPI_TABLE_CHECK(blpapi_SubscriptionList_addResolved) \
275 ? g_blpapiFunctionEntries \
276 .blpapi_SubscriptionList_addResolved( \
277 a1, a2, a3) \
278 : blpapi_SubscriptionList_add(a1, a2, a3, 0, 0, 0, 0))
279
280#define BLPAPI_CALL_SUBSCRIPTIONLIST_ISRESOLVEDAT(a1, a2, a3) \
281 (BLPAPI_TABLE_CHECK(blpapi_SubscriptionList_isResolvedAt) \
282 ? g_blpapiFunctionEntries \
283 .blpapi_SubscriptionList_isResolvedAt( \
284 a1, a2, a3) \
285 : (*a2 = 0, 0))
286
287#define BLPAPI_CALL_PROVIDERSESSION_DEREGISTERSERVICE(a1, a2) \
288 (BLPAPI_TABLE_CALL(blpapi_ProviderSession_deregisterService)(a1, a2))
289
290#define BLPAPI_CALL_SERVICEREGISTRATIONOPTIONS_SETPARTSTOREGISTER(a1, a2) \
291 (BLPAPI_TABLE_CALL(blpapi_ServiceRegistrationOptions_setPartsToRegister)( \
292 a1, a2))
293
294#define BLPAPI_CALL_SERVICEREGISTRATIONOPTIONS_GETPARTSTOREGISTER(a1) \
295 (BLPAPI_TABLE_CALL(blpapi_ServiceRegistrationOptions_getPartsToRegister)( \
296 a1))
297
298#define BLPAPI_CALL_PROVIDERSESSION_DELETETOPICS(a1, a2, a3) \
299 (BLPAPI_TABLE_CALL(blpapi_ProviderSession_deleteTopics)(a1, a2, a3))
300
301#define BLPAPI_CALL_PROVIDERSESSION_TERMINATESUBSCRIPTIONSONTOPICS( \
302 a1, a2, a3, a4) \
303 (BLPAPI_TABLE_CALL( \
304 blpapi_ProviderSession_terminateSubscriptionsOnTopics)( \
305 a1, a2, a3, a4))
306
307#define BLPAPI_CALL_PROVIDERSESSION_ACTIVATESUBSERVICECODERANGE( \
308 a1, a2, a3, a4, a5) \
309 (BLPAPI_TABLE_CALL(blpapi_ProviderSession_activateSubServiceCodeRange)( \
310 a1, a2, a3, a4, a5))
311
312#define BLPAPI_CALL_PROVIDERSESSION_DEACTIVATESUBSERVICECODERANGE( \
313 a1, a2, a3, a4) \
314 (BLPAPI_TABLE_CALL(blpapi_ProviderSession_deactivateSubServiceCodeRange)( \
315 a1, a2, a3, a4))
316
317#define BLPAPI_CALL_SERVICEREGISTRATIONOPTIONS_ADDACTIVATESUBSERVICECODERANGE( \
318 a1, a2, a3, a4) \
319 (BLPAPI_TABLE_CALL( \
320 blpapi_ServiceRegistrationOptions_addActiveSubServiceCodeRange)( \
321 a1, a2, a3, a4))
322
323#define BLPAPI_CALL_SERVICEREGISTRATIONOPTIONS_REMOVEALLACTIVESUBSERVICECODERANGES( \
324 a1) \
325 (BLPAPI_TABLE_CALL( \
326 blpapi_ServiceRegistrationOptions_removeAllActiveSubServiceCodeRanges)( \
327 a1))
328
329#define BLPAPI_CALL_MESSAGE_TIMERECEIVED(a1, a2) \
330 (BLPAPI_TABLE_CALL(blpapi_Message_timeReceived)(a1, a2))
331
332#define BLPAPI_CALL_SESSIONOPTION_SETRECORDSUBSCRIPTIONDATARECEIVETIMES( \
333 a1, a2) \
334 (BLPAPI_TABLE_CHECK( \
335 blpapi_SessionOptions_setRecordSubscriptionDataReceiveTimes) \
336 ? g_blpapiFunctionEntries \
337 .blpapi_SessionOptions_setRecordSubscriptionDataReceiveTimes( \
338 a1, a2) \
339 : (void)0)
340
341#define BLPAPI_CALL_SESSIONOPTION_RECORDSUBSCRIPTIONDATARECEIVETIMES(a1) \
342 (BLPAPI_TABLE_CHECK( \
343 blpapi_SessionOptions_recordSubscriptionDataReceiveTimes) \
344 ? g_blpapiFunctionEntries \
345 .blpapi_SessionOptions_recordSubscriptionDataReceiveTimes( \
346 a1) \
347 : false)
348
349#define BLPAPI_CALL_TIMEPOINTUTIL_NANOSECONDSBETWEEN(a1, a2) \
350 (BLPAPI_TABLE_CALL(blpapi_TimePointUtil_nanosecondsBetween)(a1, a2))
351
352#define BLPAPI_CALL_HIGHRESOLUTIONCLOCK_NOW(a1) \
353 (BLPAPI_TABLE_CALL(blpapi_HighResolutionClock_now)(a1))
354
355#define BLPAPI_CALL_HIGHPRECISIONDATETIME_FROMTIMEPOINT(a1, a2, a3) \
356 (BLPAPI_TABLE_CALL(blpapi_HighPrecisionDatetime_fromTimePoint)(a1, a2, a3))
357
358#else // if defined(_WIN32) || defined(__WIN32__)
359
360#define BLPAPI_CALL_AVAILABLE(FUNCNAME) true
361#define BLPAPI_CALL(FUNCNAME) FUNCNAME
362#define BLPAPI_CALL_UNCHECKED(FUNCNAME) FUNCNAME
363
364#define BLPAPI_CALL_EVENTFORMATTER_APPENDMESSAGESEQ(a1, a2, a3, a4, a5, a6) \
365 (blpapi_EventFormatter_appendMessageSeq)(a1, a2, a3, a4, a5, a6)
366#define BLPAPI_CALL_EVENTFORMATTER_APPENDRECAPMESSAGESEQ(a1, a2, a3, a4, a5) \
367 (blpapi_EventFormatter_appendRecapMessageSeq)(a1, a2, a3, a4, a5)
368#define BLPAPI_CALL_MESSAGE_ADDREF(a1) (blpapi_Message_addRef)(a1)
369#define BLPAPI_CALL_MESSAGE_RELEASE(a1) (blpapi_Message_release)(a1)
370#define BLPAPI_CALL_SESSIONOPTIONS_SETMAXEVENTQUEUESIZE(a1, a2) \
371 (blpapi_SessionOptions_setMaxEventQueueSize)(a1, a2)
372#define BLPAPI_CALL_SESSIONOPTIONS_SETSLOWCONSUMERHIWATERMARK(a1, a2) \
373 (blpapi_SessionOptions_setSlowConsumerWarningHiWaterMark)(a1, a2)
374#define BLPAPI_CALL_SESSIONOPTIONS_SETSLOWCONSUMERLOWATERMARK(a1, a2) \
375 (blpapi_SessionOptions_setSlowConsumerWarningLoWaterMark)(a1, a2)
376#define BLPAPI_CALL_REQUEST_SETPREFERREDROUTE(a1, a2) \
377 (blpapi_Request_setPreferredRoute)(a1, a2)
378#define BLPAPI_CALL_MESSAGE_FRAGMENTTYPE(a1) (blpapi_Message_fragmentType)(a1)
379#define BLPAPI_CALL_SESSIONOPTIONS_MAXEVENTQUEUESIZE(a1) \
380 (blpapi_SessionOptions_maxEventQueueSize)(a1)
381#define BLPAPI_CALL_SESSIONOPTIONS_SLOWCONSUMERHIWATERMARK(a1) \
382 (blpapi_SessionOptions_slowConsumerWarningHiWaterMark)(a1)
383#define BLPAPI_CALL_SESSIONOPTIONS_SLOWCONSUMERLOWATERMARK(a1) \
384 (blpapi_SessionOptions_slowConsumerWarningLoWaterMark)(a1)
385
386#define BLPAPI_CALL_SESSIONOPTIONS_DEFAULTKEEPALIVEINACTIVITYTIME(a1) \
387 (blpapi_SessionOptions_defaultKeepAliveInactivityTime)(a1)
388#define BLPAPI_CALL_SESSIONOPTIONS_DEFAULTKEEPALIVERESPONSETIMEOUT(a1) \
389 (blpapi_SessionOptions_defaultKeepAliveResponseTimeout)(a1)
390#define BLPAPI_CALL_SESSIONOPTIONS_KEEPALIVEENABLED(a1) \
391 (blpapi_SessionOptions_keepAliveEnabled)(a1)
392#define BLPAPI_CALL_SESSIONOPTIONS_SETDEFAULTKEEPALIVEINACTIVITYTIME(a1, a2) \
393 (blpapi_SessionOptions_setDefaultKeepAliveInactivityTime)(a1, a2)
394#define BLPAPI_CALL_SESSIONOPTIONS_SETDEFAULTKEEPALIVERESPONSETIMEOUT(a1, a2) \
395 (blpapi_SessionOptions_setDefaultKeepAliveResponseTimeout)(a1, a2)
396#define BLPAPI_CALL_SESSIONOPTIONS_SETKEEPALIVEENABLED(a1, a2) \
397 (blpapi_SessionOptions_setKeepAliveEnabled)(a1, a2)
398#define BLPAPI_CALL_SESSIONOPTIONS_SETBANDWIDTHSAVEMODEDISABLED(a1, a2) \
399 (blpapi_SessionOptions_setBandwidthSaveModeDisabled)(a1, a2)
400#define BLPAPI_CALL_SESSIONOPTIONS_BANDWIDTHSAVEMODEDISABLED(a1) \
401 (blpapi_SessionOptions_bandwidthSaveModeDisabled)(a1)
402
403#define BLPAPI_CALL_HIGHPRECISIONDATETIME_COMPARE(a1, a2) \
404 (blpapi_HighPrecisionDatetime_compare)(a1, a2)
405#define BLPAPI_CALL_HIGHPRECISIONDATETIME_PRINT(a1, a2, a3, a4, a5) \
406 (blpapi_HighPrecisionDatetime_print)(a1, a2, a3, a4, a5)
407#define BLPAPI_CALL_ELEMENT_SETVALUEHIGHPRECISIONDATETIME(a1, a2, a3) \
408 (blpapi_Element_setValueHighPrecisionDatetime(a1, a2, a3))
409#define BLPAPI_CALL_ELEMENT_SETELEMENTHIGHPRECISIONDATETIME(a1, a2, a3, a4) \
410 (blpapi_Element_setElementHighPrecisionDatetime(a1, a2, a3, a4))
411#define BLPAPI_CALL_ELEMENT_GETVALUEASHIGHPRECISIONDATETIME(a1, a2, a3) \
412 return blpapi_Element_getValueAsHighPrecisionDatetime( \
413 a1, &a2->rawHighPrecisionValue(), a3);
414#define BLPAPI_CALL_SESSION_RESUBSCRIBEWITHID(a1, a2, a3, a4, a5) \
415 (blpapi_Session_resubscribeWithId)(a1, a2, a3, a4, a5)
416
417#define BLPAPI_CALL_EVENTFORMATTER_SETVALUENULL(a1, a2, a3) \
418 (blpapi_EventFormatter_setValueNull)(a1, a2, a3)
419
420#define BLPAPI_CALL_DIAGNOSTICSUTIL_MEMORYINFO(a1, a2) \
421 return blpapi_DiagnosticsUtil_memoryInfo(a1, a2);
422
423#define BLPAPI_CALL_SUBSCRIPTIONLIST_ADDRESOLVED(a1, a2, a3) \
424 (blpapi_SubscriptionList_addResolved)(a1, a2, a3)
425#define BLPAPI_CALL_SUBSCRIPTIONLIST_ISRESOLVEDAT(a1, a2, a3) \
426 (blpapi_SubscriptionList_isResolvedAt)(a1, a2, a3)
427
428#define BLPAPI_CALL_PROVIDERSESSION_DEREGISTERSERVICE(a1, a2) \
429 (blpapi_ProviderSession_deregisterService(a1, a2))
430
431#define BLPAPI_CALL_SERVICEREGISTRATIONOPTIONS_SETPARTSTOREGISTER(a1, a2) \
432 (blpapi_ServiceRegistrationOptions_setPartsToRegister(a1, a2))
433
434#define BLPAPI_CALL_SERVICEREGISTRATIONOPTIONS_GETPARTSTOREGISTER(a1) \
435 (blpapi_ServiceRegistrationOptions_getPartsToRegister(a1))
436
437#define BLPAPI_CALL_PROVIDERSESSION_DELETETOPICS(a1, a2, a3) \
438 (blpapi_ProviderSession_deleteTopics(a1, a2, a3))
439
440#define BLPAPI_CALL_PROVIDERSESSION_TERMINATESUBSCRIPTIONSONTOPICS( \
441 a1, a2, a3, a4) \
442 (blpapi_ProviderSession_terminateSubscriptionsOnTopics(a1, a2, a3, a4))
443
444#define BLPAPI_CALL_PROVIDERSESSION_ACTIVATESUBSERVICECODERANGE( \
445 a1, a2, a3, a4, a5) \
446 (blpapi_ProviderSession_activateSubServiceCodeRange)(a1, a2, a3, a4, a5)
447
448#define BLPAPI_CALL_PROVIDERSESSION_DEACTIVATESUBSERVICECODERANGE( \
449 a1, a2, a3, a4) \
450 (blpapi_ProviderSession_deactivateSubServiceCodeRange)(a1, a2, a3, a4)
451
452#define BLPAPI_CALL_SERVICEREGISTRATIONOPTIONS_ADDACTIVATESUBSERVICECODERANGE( \
453 a1, a2, a3, a4) \
454 (blpapi_ServiceRegistrationOptions_addActiveSubServiceCodeRange)( \
455 a1, a2, a3, a4)
456
457#define BLPAPI_CALL_SERVICEREGISTRATIONOPTIONS_REMOVEALLACTIVESUBSERVICECODERANGES( \
458 a1) \
459 (blpapi_ServiceRegistrationOptions_removeAllActiveSubServiceCodeRanges)(a1)
460
461#define BLPAPI_CALL_MESSAGE_TIMERECEIVED(a1, a2) \
462 (blpapi_Message_timeReceived)(a1, a2)
463#define BLPAPI_CALL_SESSIONOPTION_SETRECORDSUBSCRIPTIONDATARECEIVETIMES( \
464 a1, a2) \
465 (blpapi_SessionOptions_setRecordSubscriptionDataReceiveTimes)(a1, a2)
466#define BLPAPI_CALL_SESSIONOPTION_RECORDSUBSCRIPTIONDATARECEIVETIMES(a1) \
467 (blpapi_SessionOptions_recordSubscriptionDataReceiveTimes)(a1)
468
469#define BLPAPI_CALL_TIMEPOINTUTIL_NANOSECONDSBETWEEN(a1, a2) \
470 (blpapi_TimePointUtil_nanosecondsBetween)(a1, a2)
471#define BLPAPI_CALL_HIGHRESOLUTIONCLOCK_NOW(a1) \
472 (blpapi_HighResolutionClock_now)(a1)
473#define BLPAPI_CALL_HIGHPRECISIONDATETIME_FROMTIMEPOINT(a1, a2, a3) \
474 (blpapi_HighPrecisionDatetime_fromTimePoint)(a1, a2, a3)
475
476#endif // if defined(_WIN32) || defined(__WIN32__)
477 // || defined(BLPAPI_FORCE_DISPATCHTBL)
478
479#endif // __cplusplus
480
481#endif // INCLUDED_BLPAPI_CALL
Work with dispatch table.
Defines Exceptions that can be thrown by the blpapi library.