36#ifndef INCLUDED_BLPAPI_MESSAGE
37#define INCLUDED_BLPAPI_MESSAGE
72#include <blpapi_deprecate.h>
85typedef struct blpapi_Message blpapi_Message_t;
92blpapi_Name_t *blpapi_Message_messageType(
const blpapi_Message_t *message);
95const char *blpapi_Message_typeString(
const blpapi_Message_t *message);
98const char *blpapi_Message_topicName(
const blpapi_Message_t *message);
101blpapi_Service_t *blpapi_Message_service(
const blpapi_Message_t *message);
104int blpapi_Message_numCorrelationIds(
const blpapi_Message_t *message);
107blpapi_CorrelationId_t blpapi_Message_correlationId(
108 const blpapi_Message_t *message,
size_t index);
111int blpapi_Message_getRequestId(
112 const blpapi_Message_t *message,
const char **requestId);
115blpapi_Element_t *blpapi_Message_elements(
const blpapi_Message_t *message);
118const char *blpapi_Message_privateData(
119 const blpapi_Message_t *message,
size_t *size);
122int blpapi_Message_fragmentType(
const blpapi_Message_t *message);
125int blpapi_Message_recapType(
const blpapi_Message_t *message);
128int blpapi_Message_print(
const blpapi_Message_t *message,
129 blpapi_StreamWriter_t streamWriter,
135int blpapi_Message_addRef(
const blpapi_Message_t *message);
138int blpapi_Message_release(
const blpapi_Message_t *message);
141int blpapi_Message_timeReceived(
142 const blpapi_Message_t *message, blpapi_TimePoint_t *timeReceived);
179 blpapi_Message_t *d_handle;
227 explicit Message(blpapi_Message_t *handle,
bool clonable =
false);
269 BLPAPI_DEPRECATE_MESSAGE_TOPIC_NAME
const char *
topicName()
const;
327 bool hasElement(
const Name& name,
bool excludeNullElements =
false)
const;
333 const char *name,
bool excludeNullElements =
false)
const;
353 const char *name)
const;
390 const char *name)
const;
403 const char *name)
const;
416 const char *name)
const;
429 const char *name)
const;
442 const char *name)
const;
455 const char *name)
const;
486 std::string
toJson()
const;
527 std::ostream& stream,
int level = 0,
int spacesPerLevel = 4)
const;
542 const blpapi_Message_t *impl()
const;
547 blpapi_Message_t *impl();
558std::ostream&
operator<<(std::ostream& stream,
const Message& message);
581 , d_isCloned(clonable)
584 d_elements =
Element(blpapi_Message_elements(handle));
589 : d_handle(original.d_handle)
590 , d_elements(original.d_elements)
600 if (d_isCloned && d_handle) {
612 if (d_isCloned && (d_handle == rhs.d_handle)) {
616 if (d_isCloned && d_handle) {
619 d_handle = rhs.d_handle;
620 d_elements = rhs.d_elements;
633 return Name(blpapi_Message_messageType(d_handle));
638 return blpapi_Message_topicName(d_handle);
643 return Service(blpapi_Message_service(d_handle));
648 return blpapi_Message_numCorrelationIds(d_handle);
655 return CorrelationId(blpapi_Message_correlationId(d_handle, index));
659 const char *name,
bool excludeNullElements)
const
661 return d_elements.hasElement(
Name(name), excludeNullElements);
665 const Name& name,
bool excludeNullElements)
const
667 return d_elements.hasElement(name, excludeNullElements);
684 return d_elements.getElementAsBool(name);
689 return d_elements.getElementAsBool(
Name(name));
694 return d_elements.getElementAsChar(name);
699 return d_elements.getElementAsChar(
Name(name));
704 return d_elements.getElementAsInt32(name);
709 return d_elements.getElementAsInt32(
Name(name));
714 return d_elements.getElementAsInt64(name);
719 return d_elements.getElementAsInt64(
Name(name));
724 return d_elements.getElementAsFloat32(name);
729 return d_elements.getElementAsFloat32(
Name(name));
734 return d_elements.getElementAsFloat64(name);
739 return d_elements.getElementAsFloat64(
Name(name));
744 return d_elements.getElementAsDatetime(name);
749 return d_elements.getElementAsDatetime(
Name(name));
754 return d_elements.getElementAsString(name);
759 return d_elements.getElementAsString(
Name(name));
764 return d_elements.getElementAsBytes(name);
769 const char *requestId = 0;
770 BLPAPI_CALL(blpapi_Message_getRequestId)(d_handle, &requestId);
780 return blpapi_Message_privateData(d_handle, size);
800 std::ostream& stream,
int level,
int spacesPerLevel)
const
811 return d_elements.print(stream, level, spacesPerLevel);
817 return message.
print(stream, 0, -1);
820inline const blpapi_Message_t *Message::impl()
const {
return d_handle; }
822inline blpapi_Message_t *Message::impl() {
return d_handle; }
Provide functions for dispatchtbl.
#define BLPAPI_CALL_MESSAGE_ADDREF(a1)
Definition blpapi_call.h:368
#define BLPAPI_CALL_MESSAGE_FRAGMENTTYPE(a1)
Definition blpapi_call.h:378
#define BLPAPI_CALL_AVAILABLE(FUNCNAME)
Definition blpapi_call.h:360
#define BLPAPI_CALL_MESSAGE_TIMERECEIVED(a1, a2)
Definition blpapi_call.h:461
#define BLPAPI_CALL(FUNCNAME)
Definition blpapi_call.h:361
#define BLPAPI_CALL_MESSAGE_RELEASE(a1)
Definition blpapi_call.h:369
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:323
Definition blpapi_correlationid.h:225
Definition blpapi_datetime.h:273
Definition blpapi_element.h:1167
int getElement(Element *result, const char *name) const
Definition blpapi_element.h:2642
std::string toJson() const
Definition blpapi_element.h:3070
Definition blpapi_exception.h:286
Definition blpapi_message.h:177
Service service() const
Definition blpapi_message.h:641
Fragment
Definition blpapi_message.h:187
@ FRAGMENT_END
the last fragmented message
Definition blpapi_message.h:195
@ FRAGMENT_NONE
message is not fragmented
Definition blpapi_message.h:189
@ FRAGMENT_INTERMEDIATE
intermediate fragmented messages
Definition blpapi_message.h:193
@ FRAGMENT_START
the first fragmented message
Definition blpapi_message.h:191
Bytes getElementAsBytes(const Name &name) const
Definition blpapi_message.h:762
Message & operator=(const Message &rhs)
Definition blpapi_message.h:605
const char * getElementAsString(const Name &name) const
Definition blpapi_message.h:752
const Element getElement(const Name &name) const
Definition blpapi_message.h:672
const Element asElement() const
Definition blpapi_message.h:774
int timeReceived(TimePoint *timestamp) const
Definition blpapi_message.h:794
const char * topicName() const
Definition blpapi_message.h:636
CorrelationId correlationId(size_t index=0) const
Definition blpapi_message.h:651
const char * getPrivateData(size_t *size) const
Definition blpapi_message.h:778
std::ostream & print(std::ostream &stream, int level=0, int spacesPerLevel=4) const
Definition blpapi_message.h:799
int numCorrelationIds() const
Definition blpapi_message.h:646
~Message()
Definition blpapi_message.h:598
Message(const Message &original)
Definition blpapi_message.h:579
bool hasElement(const Name &name, bool excludeNullElements=false) const
Definition blpapi_message.h:664
Name messageType() const
Definition blpapi_message.h:631
std::string toJson() const
Definition blpapi_message.h:776
Fragment fragmentType() const
Definition blpapi_message.h:783
Int64 getElementAsInt64(const Name &name) const
Definition blpapi_message.h:712
RecapType::Type recapType() const
Definition blpapi_message.h:788
char getElementAsChar(const Name &name) const
Definition blpapi_message.h:692
const char * getRequestId() const
Definition blpapi_message.h:767
Float32 getElementAsFloat32(const Name &name) const
Definition blpapi_message.h:722
Datetime getElementAsDatetime(const Name &name) const
Definition blpapi_message.h:742
bool getElementAsBool(const Name &name) const
Definition blpapi_message.h:682
Int32 getElementAsInt32(const Name &name) const
Definition blpapi_message.h:702
Float64 getElementAsFloat64(const Name &name) const
Definition blpapi_message.h:732
size_t numElements() const
Definition blpapi_message.h:670
Definition blpapi_name.h:242
Definition blpapi_service.h:320
Definition blpapi_abstractsession.h:212
blpapi_TimePoint_t TimePoint
Definition blpapi_timepoint.h:147
blpapi_Float64_t Float64
Definition blpapi_types.h:485
blpapi_Float32_t Float32
Definition blpapi_types.h:484
blpapi_Int64_t Int64
Definition blpapi_types.h:482
std::ostream & operator<<(std::ostream &os, const CorrelationId &correlator)
Definition blpapi_correlationid.h:680
blpapi_Int32_t Int32
Definition blpapi_types.h:480
Definition blpapi_abstractsession.h:211
Definition blpapi_message.h:212
Type
Definition blpapi_message.h:213
@ e_unsolicited
generated at discretion of the service
Definition blpapi_message.h:218
@ e_solicited
generated on request by subscriber
Definition blpapi_message.h:216
@ e_none
normal data tick; not a recap
Definition blpapi_message.h:214
static int writeToStream(const char *data, int length, void *stream)
Definition blpapi_streamproxy.h:109