38#ifndef INCLUDED_BLPAPI_MESSAGE
39#define INCLUDED_BLPAPI_MESSAGE
73#include <blpapi_deprecate.h>
86typedef struct blpapi_Message blpapi_Message_t;
101blpapi_Name_t *blpapi_Message_messageType(
const blpapi_Message_t *message);
114const char *blpapi_Message_typeString(
const blpapi_Message_t *message);
131const char *blpapi_Message_topicName(
const blpapi_Message_t *message);
142blpapi_Service_t *blpapi_Message_service(
const blpapi_Message_t *message);
152int blpapi_Message_numCorrelationIds(
const blpapi_Message_t *message);
165blpapi_CorrelationId_t blpapi_Message_correlationId(
166 const blpapi_Message_t *message,
size_t index);
181int blpapi_Message_getRequestId(
182 const blpapi_Message_t *message,
const char **requestId);
193blpapi_Element_t *blpapi_Message_elements(
const blpapi_Message_t *message);
209const char *blpapi_Message_privateData(
210 const blpapi_Message_t *message,
size_t *size);
224int blpapi_Message_fragmentType(
const blpapi_Message_t *message);
238int blpapi_Message_recapType(
const blpapi_Message_t *message);
258int blpapi_Message_print(
const blpapi_Message_t *message,
259 blpapi_StreamWriter_t streamWriter,
277int blpapi_Message_addRef(
const blpapi_Message_t *message);
292int blpapi_Message_release(
const blpapi_Message_t *message);
309int blpapi_Message_timeReceived(
310 const blpapi_Message_t *message, blpapi_TimePoint_t *timeReceived);
346 blpapi_Message_t *d_handle;
394 explicit Message(blpapi_Message_t *handle,
bool clonable =
false);
436 BLPAPI_DEPRECATE_MESSAGE_TOPIC_NAME
const char *
topicName()
const;
494 bool hasElement(
const Name& name,
bool excludeNullElements =
false)
const;
500 const char *name,
bool excludeNullElements =
false)
const;
520 const char *name)
const;
557 const char *name)
const;
570 const char *name)
const;
583 const char *name)
const;
596 const char *name)
const;
609 const char *name)
const;
622 const char *name)
const;
653 std::string
toJson()
const;
694 std::ostream& stream,
int level = 0,
int spacesPerLevel = 4)
const;
709 const blpapi_Message_t *impl()
const;
714 blpapi_Message_t *impl();
725std::ostream&
operator<<(std::ostream& stream,
const Message& message);
748 , d_isCloned(clonable)
751 d_elements =
Element(blpapi_Message_elements(handle));
756 : d_handle(original.d_handle)
757 , d_elements(original.d_elements)
761 BLPAPI_CALL_MESSAGE_ADDREF(d_handle);
767 if (d_isCloned && d_handle) {
768 BLPAPI_CALL_MESSAGE_RELEASE(d_handle);
779 if (d_isCloned && (d_handle == rhs.d_handle)) {
783 if (d_isCloned && d_handle) {
784 BLPAPI_CALL_MESSAGE_RELEASE(d_handle);
786 d_handle = rhs.d_handle;
787 d_elements = rhs.d_elements;
791 BLPAPI_CALL_MESSAGE_ADDREF(d_handle);
800 return Name(blpapi_Message_messageType(d_handle));
805 return blpapi_Message_topicName(d_handle);
810 return Service(blpapi_Message_service(d_handle));
815 return blpapi_Message_numCorrelationIds(d_handle);
822 return CorrelationId(blpapi_Message_correlationId(d_handle, index));
826 const char *name,
bool excludeNullElements)
const
828 return d_elements.hasElement(
Name(name), excludeNullElements);
832 const Name& name,
bool excludeNullElements)
const
834 return d_elements.hasElement(name, excludeNullElements);
851 return d_elements.getElementAsBool(name);
856 return d_elements.getElementAsBool(
Name(name));
861 return d_elements.getElementAsChar(name);
866 return d_elements.getElementAsChar(
Name(name));
871 return d_elements.getElementAsInt32(name);
876 return d_elements.getElementAsInt32(
Name(name));
881 return d_elements.getElementAsInt64(name);
886 return d_elements.getElementAsInt64(
Name(name));
891 return d_elements.getElementAsFloat32(name);
896 return d_elements.getElementAsFloat32(
Name(name));
901 return d_elements.getElementAsFloat64(name);
906 return d_elements.getElementAsFloat64(
Name(name));
911 return d_elements.getElementAsDatetime(name);
916 return d_elements.getElementAsDatetime(
Name(name));
921 return d_elements.getElementAsString(name);
926 return d_elements.getElementAsString(
Name(name));
931 return d_elements.getElementAsBytes(name);
936 const char *requestId = 0;
937 BLPAPI_CALL(blpapi_Message_getRequestId)(d_handle, &requestId);
947 return blpapi_Message_privateData(d_handle, size);
958 BLPAPI_CALL(blpapi_Message_recapType)(d_handle));
963 return BLPAPI_CALL_MESSAGE_TIMERECEIVED(d_handle, timestamp);
967 std::ostream& stream,
int level,
int spacesPerLevel)
const
969 if (BLPAPI_CALL_AVAILABLE(blpapi_Message_print)) {
970 BLPAPI_CALL(blpapi_Message_print)
978 return d_elements.print(stream, level, spacesPerLevel);
984 return message.
print(stream, 0, -1);
988inline const blpapi_Message_t *Message::impl()
const {
return d_handle; }
990inline blpapi_Message_t *Message::impl() {
return d_handle; }
Provide functions for dispatchtbl.
Provide a key to identify individual subscriptions or requests.
Common definitions used by the library.
Provide a representation of an item in a message.
Provide a representation of strings for use as container keys.
A service which provides access to API data (provide or consume).
A signature for callback on print and default C++ implementation.
Provide a time point with respect to an epoch.
Definition blpapi_types.h:395
Definition blpapi_correlationid.h:306
Definition blpapi_datetime.h:312
Definition blpapi_element.h:1098
int getElement(Element *result, const char *name) const
Definition blpapi_element.h:2565
std::string toJson() const
Definition blpapi_element.h:2995
Definition blpapi_exception.h:301
Definition blpapi_message.h:344
Service service() const
Definition blpapi_message.h:808
Fragment
Definition blpapi_message.h:354
@ FRAGMENT_END
the last fragmented message
Definition blpapi_message.h:362
@ FRAGMENT_NONE
message is not fragmented
Definition blpapi_message.h:356
@ FRAGMENT_INTERMEDIATE
intermediate fragmented messages
Definition blpapi_message.h:360
@ FRAGMENT_START
the first fragmented message
Definition blpapi_message.h:358
Bytes getElementAsBytes(const Name &name) const
Definition blpapi_message.h:929
Message & operator=(const Message &rhs)
Definition blpapi_message.h:772
const char * getElementAsString(const Name &name) const
Definition blpapi_message.h:919
const Element getElement(const Name &name) const
Definition blpapi_message.h:839
const Element asElement() const
Definition blpapi_message.h:941
int timeReceived(TimePoint *timestamp) const
Definition blpapi_message.h:961
const char * topicName() const
Definition blpapi_message.h:803
CorrelationId correlationId(size_t index=0) const
Definition blpapi_message.h:818
const char * getPrivateData(size_t *size) const
Definition blpapi_message.h:945
std::ostream & print(std::ostream &stream, int level=0, int spacesPerLevel=4) const
Definition blpapi_message.h:966
int numCorrelationIds() const
Definition blpapi_message.h:813
~Message()
Definition blpapi_message.h:765
Message(const Message &original)
Definition blpapi_message.h:746
bool hasElement(const Name &name, bool excludeNullElements=false) const
Definition blpapi_message.h:831
Name messageType() const
Definition blpapi_message.h:798
std::string toJson() const
Definition blpapi_message.h:943
Fragment fragmentType() const
Definition blpapi_message.h:950
Int64 getElementAsInt64(const Name &name) const
Definition blpapi_message.h:879
RecapType::Type recapType() const
Definition blpapi_message.h:955
char getElementAsChar(const Name &name) const
Definition blpapi_message.h:859
const char * getRequestId() const
Definition blpapi_message.h:934
Float32 getElementAsFloat32(const Name &name) const
Definition blpapi_message.h:889
Datetime getElementAsDatetime(const Name &name) const
Definition blpapi_message.h:909
bool getElementAsBool(const Name &name) const
Definition blpapi_message.h:849
Int32 getElementAsInt32(const Name &name) const
Definition blpapi_message.h:869
Float64 getElementAsFloat64(const Name &name) const
Definition blpapi_message.h:899
size_t numElements() const
Definition blpapi_message.h:837
Definition blpapi_name.h:228
Definition blpapi_service.h:619
blpapi_TimePoint_t TimePoint
Time point type alias.
Definition blpapi_timepoint.h:162
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
std::ostream & operator<<(std::ostream &os, const CorrelationId &correlator)
Definition blpapi_correlationid.h:761
blpapi_Int32_t Int32
32-bit signed integer type alias.
Definition blpapi_types.h:554
Definition blpapi_abstractsession.h:451
Definition blpapi_message.h:379
Type
Definition blpapi_message.h:380
@ e_unsolicited
generated at discretion of the service
Definition blpapi_message.h:385
@ e_solicited
generated on request by subscriber
Definition blpapi_message.h:383
@ e_none
normal data tick; not a recap
Definition blpapi_message.h:381
static int writeToStream(const char *data, int length, void *stream)
Definition blpapi_streamproxy.h:108