38#ifndef INCLUDED_BLPAPI_EVENTFORMATTER
39#define INCLUDED_BLPAPI_EVENTFORMATTER
70#include <blpapi_deprecate.h>
100blpapi_EventFormatter_t *blpapi_EventFormatter_create(blpapi_Event_t *event);
110void blpapi_EventFormatter_destroy(blpapi_EventFormatter_t *victim);
137int blpapi_EventFormatter_appendMessage(blpapi_EventFormatter_t *formatter,
138 const char *typeString,
139 blpapi_Name_t *typeName,
140 const blpapi_Topic_t *topic);
170int blpapi_EventFormatter_appendMessageSeq(blpapi_EventFormatter_t *formatter,
171 const char *typeString,
172 blpapi_Name_t *typeName,
173 const blpapi_Topic_t *topic,
174 unsigned int sequenceNumber,
199int blpapi_EventFormatter_appendResponse(blpapi_EventFormatter_t *formatter,
200 const char *typeString,
201 blpapi_Name_t *typeName);
227int blpapi_EventFormatter_appendRecapMessage(
228 blpapi_EventFormatter_t *formatter,
229 const blpapi_Topic_t *topic,
230 const blpapi_CorrelationId_t *cid);
260int blpapi_EventFormatter_appendRecapMessageSeq(
261 blpapi_EventFormatter_t *formatter,
262 const blpapi_Topic_t *topic,
263 const blpapi_CorrelationId_t *cid,
264 unsigned int sequenceNumber,
294int blpapi_EventFormatter_appendFragmentedRecapMessage(
295 blpapi_EventFormatter_t *formatter,
296 const char *typeString,
297 blpapi_Name_t *typeName,
298 const blpapi_Topic_t *topic,
299 const blpapi_CorrelationId_t *cid,
330int blpapi_EventFormatter_appendFragmentedRecapMessageSeq(
331 blpapi_EventFormatter_t *formatter,
332 const char *typeString,
333 blpapi_Name_t *typeName,
334 const blpapi_Topic_t *topic,
336 unsigned int sequenceNumber);
360int blpapi_EventFormatter_setValueBool(blpapi_EventFormatter_t *formatter,
361 const char *typeString,
362 const blpapi_Name_t *typeName,
363 blpapi_Bool_t value);
387int blpapi_EventFormatter_setValueChar(blpapi_EventFormatter_t *formatter,
388 const char *typeString,
389 const blpapi_Name_t *typeName,
414int blpapi_EventFormatter_setValueInt32(blpapi_EventFormatter_t *formatter,
415 const char *typeString,
416 const blpapi_Name_t *typeName,
417 blpapi_Int32_t value);
441int blpapi_EventFormatter_setValueInt64(blpapi_EventFormatter_t *formatter,
442 const char *typeString,
443 const blpapi_Name_t *typeName,
444 blpapi_Int64_t value);
468int blpapi_EventFormatter_setValueFloat32(blpapi_EventFormatter_t *formatter,
469 const char *typeString,
470 const blpapi_Name_t *typeName,
471 blpapi_Float32_t value);
495int blpapi_EventFormatter_setValueFloat64(blpapi_EventFormatter_t *formatter,
496 const char *typeString,
497 const blpapi_Name_t *typeName,
498 blpapi_Float64_t value);
524int blpapi_EventFormatter_setValueDatetime(blpapi_EventFormatter_t *formatter,
525 const char *typeString,
526 const blpapi_Name_t *typeName,
527 const blpapi_Datetime_t *value);
554int blpapi_EventFormatter_setValueHighPrecisionDatetime(
555 blpapi_EventFormatter_t *formatter,
556 const char *typeString,
557 const blpapi_Name_t *typeName,
558 const blpapi_HighPrecisionDatetime_t *value);
585int blpapi_EventFormatter_setValueString(blpapi_EventFormatter_t *formatter,
586 const char *typeString,
587 const blpapi_Name_t *typeName,
614int blpapi_EventFormatter_setValueFromName(blpapi_EventFormatter_t *formatter,
615 const char *typeString,
616 const blpapi_Name_t *typeName,
617 const blpapi_Name_t *value);
641int blpapi_EventFormatter_setValueBytes(blpapi_EventFormatter_t *formatter,
642 const char *typeString,
643 const blpapi_Name_t *typeName,
669int blpapi_EventFormatter_setValueNull(blpapi_EventFormatter_t *formatter,
670 const char *typeString,
671 const blpapi_Name_t *typeName);
700int blpapi_EventFormatter_pushElement(blpapi_EventFormatter_t *formatter,
701 const char *typeString,
702 const blpapi_Name_t *typeName);
719int blpapi_EventFormatter_popElement(blpapi_EventFormatter_t *formatter);
734int blpapi_EventFormatter_appendValueBool(
735 blpapi_EventFormatter_t *formatter, blpapi_Bool_t value);
750int blpapi_EventFormatter_appendValueChar(
751 blpapi_EventFormatter_t *formatter,
char value);
766int blpapi_EventFormatter_appendValueInt32(
767 blpapi_EventFormatter_t *formatter, blpapi_Int32_t value);
782int blpapi_EventFormatter_appendValueInt64(
783 blpapi_EventFormatter_t *formatter, blpapi_Int64_t value);
798int blpapi_EventFormatter_appendValueFloat32(
799 blpapi_EventFormatter_t *formatter, blpapi_Float32_t value);
814int blpapi_EventFormatter_appendValueFloat64(
815 blpapi_EventFormatter_t *formatter, blpapi_Float64_t value);
832int blpapi_EventFormatter_appendValueDatetime(
833 blpapi_EventFormatter_t *formatter,
const blpapi_Datetime_t *value);
851int blpapi_EventFormatter_appendValueHighPrecisionDatetime(
852 blpapi_EventFormatter_t *formatter,
853 const blpapi_HighPrecisionDatetime_t *value);
869int blpapi_EventFormatter_appendValueString(
870 blpapi_EventFormatter_t *formatter,
const char *value);
886int blpapi_EventFormatter_appendValueFromName(
887 blpapi_EventFormatter_t *formatter,
const blpapi_Name_t *value);
902int blpapi_EventFormatter_appendElement(blpapi_EventFormatter_t *formatter);
919int blpapi_EventFormatter_getElementDefinition(
920 blpapi_EventFormatter_t *formatter,
921 blpapi_SchemaElementDefinition_t **definition);
939int blpapi_EventFormatter_getElement(
940 blpapi_EventFormatter_t *formatter, blpapi_Element_t **element);
949#include <type_traits>
997class EventFormatter {
999 blpapi_EventFormatter_t *d_handle;
1002 EventFormatter& operator=(
const EventFormatter&);
1003 EventFormatter(
const EventFormatter&);
1007 explicit EventFormatter(
Event& event);
1030 unsigned int sequenceNumber);
1111 unsigned int sequenceNumber,
1137 unsigned int sequenceNumber);
1153 unsigned int sequenceNumber);
1177 unsigned int sequenceNumber);
1358 void setElement(
const Name& name,
const void *value,
size_t length);
1372 template <
typename BYTES,
1373 typename std::enable_if<IsByteSequence<BYTES>::value,
bool>::type
1519 const char *messageType,
const Topic& topic);
1529 BLPAPI_DEPRECATE_STRING_NAME
void appendMessage(
const char *messageType,
1531 unsigned int sequenceNumber);
1546 const char *operationName);
1560 const char *messageType,
1584 const char *messageType,
1586 unsigned int sequenceNumber);
1603 const char *messageType,
1606 unsigned int sequenceNumber);
1630 const char *messageType,
1654 BLPAPI_DEPRECATE_STRING_NAME
void setElement(
const char *name,
bool value);
1670 BLPAPI_DEPRECATE_STRING_NAME
void setElement(
const char *name,
char value);
1686 BLPAPI_DEPRECATE_STRING_NAME
void setElement(
1687 const char *name,
Int32 value);
1703 BLPAPI_DEPRECATE_STRING_NAME
void setElement(
1704 const char *name,
Int64 value);
1720 BLPAPI_DEPRECATE_STRING_NAME
void setElement(
1721 const char *name,
Float32 value);
1737 BLPAPI_DEPRECATE_STRING_NAME
void setElement(
1738 const char *name,
Float64 value);
1754 BLPAPI_DEPRECATE_STRING_NAME
void setElement(
1755 const char *name,
const Datetime& value);
1772 BLPAPI_DEPRECATE_STRING_NAME
void setElement(
1791 BLPAPI_DEPRECATE_STRING_NAME
void setElement(
1792 const char *name,
const char *value);
1811 BLPAPI_DEPRECATE_STRING_NAME
void setElement(
1812 const char *name,
const Name& value);
1828 BLPAPI_DEPRECATE_STRING_NAME
void setElementNull(
const char *name);
1845 BLPAPI_DEPRECATE_STRING_NAME
void pushElement(
const char *name);
1882 void fromJson(
const std::string& json);
1897 const blpapi_EventFormatter_t *handle()
const;
1902 blpapi_EventFormatter_t *handle();
1920inline EventFormatter::EventFormatter(
Event& event)
1922 d_handle = blpapi_EventFormatter_create(event.impl());
1927 blpapi_EventFormatter_destroy(d_handle);
1931 const char *messageType,
const Topic& topic)
1934 d_handle, messageType, 0, topic.impl()));
1938 const Name& messageType,
const Topic& topic)
1941 d_handle, 0, messageType.impl(), topic.impl()));
1946 unsigned int sequenceNumber)
1949 d_handle, messageType, 0, topic.impl(), sequenceNumber, 0));
1954 unsigned int sequenceNumber)
1957 d_handle, 0, messageType.impl(), topic.impl(), sequenceNumber, 0));
1963 blpapi_EventFormatter_appendResponse(d_handle, operationName, 0));
1969 d_handle, 0, operationName.impl()));
1976 d_handle, topic.impl(), cid ? &cid->impl() : 0));
1983 blpapi_EventFormatter_appendFragmentedRecapMessage)(d_handle,
1988 static_cast<int>(fragmentType)));
1996 blpapi_EventFormatter_appendFragmentedRecapMessage)(d_handle,
2001 static_cast<int>(fragmentType)));
2009 blpapi_EventFormatter_appendFragmentedRecapMessage)(d_handle,
2014 static_cast<int>(fragmentType)));
2018 unsigned int sequenceNumber,
2022 BLPAPI_CALL_EVENTFORMATTER_APPENDRECAPMESSAGESEQ(d_handle,
2024 cid ? &cid->impl() : 0,
2031 unsigned int sequenceNumber)
2034 blpapi_EventFormatter_appendFragmentedRecapMessageSeq)(d_handle,
2044 unsigned int sequenceNumber)
2047 blpapi_EventFormatter_appendFragmentedRecapMessageSeq)(d_handle,
2057 unsigned int sequenceNumber)
2060 blpapi_EventFormatter_appendFragmentedRecapMessageSeq)(d_handle,
2064 static_cast<int>(fragmentType),
2071 unsigned int sequenceNumber)
2074 blpapi_EventFormatter_appendFragmentedRecapMessageSeq)(d_handle,
2078 static_cast<int>(fragmentType),
2085 unsigned int sequenceNumber)
2088 blpapi_EventFormatter_appendFragmentedRecapMessageSeq)(d_handle,
2092 static_cast<int>(fragmentType),
2100 blpapi_EventFormatter_appendFragmentedRecapMessage)(d_handle,
2105 static_cast<int>(fragmentType)));
2113 blpapi_EventFormatter_appendFragmentedRecapMessage)(d_handle,
2118 static_cast<int>(fragmentType)));
2126 blpapi_EventFormatter_appendFragmentedRecapMessage)(d_handle,
2131 static_cast<int>(fragmentType)));
2137 blpapi_EventFormatter_setValueBool(d_handle, name, 0, value));
2143 blpapi_EventFormatter_setValueChar(d_handle, name, 0, value));
2149 blpapi_EventFormatter_setValueInt32(d_handle, name, 0, value));
2155 blpapi_EventFormatter_setValueInt64(d_handle, name, 0, value));
2161 blpapi_EventFormatter_setValueFloat32(d_handle, name, 0, value));
2167 blpapi_EventFormatter_setValueFloat64(d_handle, name, 0, value));
2173 d_handle, name, 0, &value.
rawValue()));
2180 BLPAPI_CALL(blpapi_EventFormatter_setValueHighPrecisionDatetime)(
2181 d_handle, name, 0, &value));
2187 blpapi_EventFormatter_setValueString(d_handle, name, 0, value));
2193 d_handle, name, 0, value.impl()));
2199 BLPAPI_CALL_EVENTFORMATTER_SETVALUENULL(d_handle, name, 0));
2205 d_handle, 0, name.impl(), value));
2211 d_handle, 0, name.impl(), value));
2217 d_handle, 0, name.impl(), value));
2223 d_handle, 0, name.impl(), value));
2229 d_handle, 0, name.impl(), value));
2234 d_handle, 0, name.impl(), value));
2240 d_handle, 0, name.impl(), &value.
rawValue()));
2247 BLPAPI_CALL(blpapi_EventFormatter_setValueHighPrecisionDatetime)(
2248 d_handle, 0, name.impl(), &value));
2254 d_handle, 0, name.impl(), value));
2258 const Name& name,
const std::string& value)
2266 d_handle, 0, name.impl(), value.impl()));
2270 const Name& name,
const void *value,
size_t length)
2273 BLPAPI_CALL(blpapi_EventFormatter_setValueBytes)(d_handle,
2276 reinterpret_cast<const char *
>(value),
2280template <
typename BYTES,
2281 typename std::enable_if<IsByteSequence<BYTES>::value,
bool>::type>
2284 setElement(name, value.data(), value.size());
2290 BLPAPI_CALL_EVENTFORMATTER_SETVALUENULL(d_handle, 0, name.impl()));
2296 blpapi_EventFormatter_pushElement(d_handle, name, 0));
2302 blpapi_EventFormatter_pushElement(d_handle, 0, name.impl()));
2313 blpapi_EventFormatter_appendValueBool(d_handle, value));
2319 blpapi_EventFormatter_appendValueChar(d_handle, value));
2325 blpapi_EventFormatter_appendValueInt32(d_handle, value));
2331 blpapi_EventFormatter_appendValueInt64(d_handle, value));
2337 blpapi_EventFormatter_appendValueFloat32(d_handle, value));
2343 blpapi_EventFormatter_appendValueFloat64(d_handle, value));
2355 blpapi_EventFormatter_appendValueHighPrecisionDatetime)(
2362 blpapi_EventFormatter_appendValueString(d_handle, value));
2373 blpapi_EventFormatter_appendValueFromName(d_handle, value.impl()));
2383 blpapi_Element_t *element =
nullptr;
2385 blpapi_EventFormatter_getElement(d_handle, &element));
2386 if (element ==
nullptr) {
2403inline const blpapi_EventFormatter_t *EventFormatter::handle()
const
2408inline blpapi_EventFormatter_t *EventFormatter::handle() {
return d_handle; }
Provide functions for dispatchtbl.
Common definitions used by the library.
Provide a representation of an item in a message.
A component which defines events related operations.
Provide representation of a Topic.
Definition blpapi_correlationid.h:306
Definition blpapi_datetime.h:312
blpapi_HighPrecisionDatetime_t HighPrecision
Definition blpapi_datetime.h:338
blpapi_Datetime_t & rawValue()
Definition blpapi_datetime.h:2018
Definition blpapi_element.h:1098
void fromJson(const char *json)
Definition blpapi_element.h:3003
Definition blpapi_event.h:325
static void throwOnError(int errorCode)
Definition blpapi_exception.h:556
Definition blpapi_exception.h:252
Fragment
Definition blpapi_message.h:354
@ FRAGMENT_NONE
message is not fragmented
Definition blpapi_message.h:356
Definition blpapi_name.h:228
Definition blpapi_topic.h:177
Definition blpapi_abstractsession.h:452
blpapi_Float64_t Float64
64-bit IEEE 754 float type alias.
Definition blpapi_types.h:559
blpapi_Float32_t Float32
32-bit IEEE 754 float type alias.
Definition blpapi_types.h:558
blpapi_Int64_t Int64
64-bit signed integer type alias.
Definition blpapi_types.h:556
blpapi_Int32_t Int32
32-bit signed integer type alias.
Definition blpapi_types.h:554
Definition blpapi_abstractsession.h:451