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