28#ifndef INCLUDED_BLPAPI_TYPES
29#define INCLUDED_BLPAPI_TYPES
126struct blpapi_AbstractSession;
129struct blpapi_Constant;
132struct blpapi_ConstantList;
135struct blpapi_Element;
141struct blpapi_EventDispatcher;
144struct blpapi_EventFormatter;
147struct blpapi_EventQueue;
150struct blpapi_MessageIterator;
156struct blpapi_Operation;
159struct blpapi_ProviderSession;
162struct blpapi_RequestTemplate;
165struct blpapi_Service;
168struct blpapi_Session;
171struct blpapi_SessionOptions;
174struct blpapi_Socks5Config;
177struct blpapi_TlsOptions;
180struct blpapi_SubscriptionItrerator;
183struct blpapi_Identity;
187struct blpapi_Identity;
190struct blpapi_SchemaElementDefinition;
196struct blpapi_MessageFormatter;
199struct blpapi_MessageProperties;
202struct blpapi_AuthOptions;
205struct blpapi_AuthUser;
208struct blpapi_AuthApplication;
211struct blpapi_AuthToken;
221#include <type_traits>
267#ifndef DOXYGEN_SHOULD_SKIP_THIS
269template <
typename T,
typename U =
bool>
struct IsString : std::false_type { };
273 typename std::enable_if<
274 std::is_member_function_pointer<decltype(&T::c_str)>::value,
275 bool>::type> : std::true_type { };
277template <
typename T,
typename U =
bool>
278struct IsByteSequence : std::false_type { };
281struct IsByteSequence<T,
282 typename std::enable_if<
283 std::is_member_function_pointer<
284 decltype(static_cast<const typename T::value_type *(
285 T::*)() const>(&T::data))>::value
286 && sizeof(typename T::value_type) == 1
287 && !IsString<T>::value,
288 bool>::type> : std::true_type { };
290template <
typename T,
typename ITER,
typename U =
bool>
291struct IsByteContainer : std::false_type { };
293template <
typename T,
typename ITER>
294struct IsByteContainer<T,
296 typename std::enable_if<std::is_constructible<T, ITER, ITER>::value
297 && sizeof(typename T::value_type) == 1,
298 bool>::type> : std::true_type { };
413 bool empty() const noexcept;
433 size_type count = static_cast<std::
size_t>(-1)) const;
445 template <typename BYTE_CONTAINER,
446 typename std::enable_if<
447 IsByteContainer<BYTE_CONTAINER,
iterator>::value,
450 operator BYTE_CONTAINER() const;
527 return d_ptr[d_length - 1];
533 assert(index < d_length);
545 assert(count <= d_length);
546 return Bytes(d_ptr, count);
551 assert(count <= d_length);
552 return Bytes(d_ptr + d_length - count, count);
557 assert(offset <= d_length);
558 assert(count ==
static_cast<std::size_t
>(-1)
559 || count <= d_length - offset);
560 return Bytes(d_ptr + offset,
561 count ==
static_cast<std::size_t
>(-1) ? d_length - offset : count);
564template <
typename BYTE_CONTAINER,
565 typename std::enable_if<
566 IsByteContainer<BYTE_CONTAINER, Bytes::iterator>::value,
568inline Bytes::operator BYTE_CONTAINER()
const
570 assert(d_ptr || d_length == 0);
571 return BYTE_CONTAINER(
begin(),
end());
struct blpapi_RequestTemplate blpapi_RequestTemplate_t
Definition blpapi_dispatchtbl.h:97
unsigned long long blpapi_UInt64_t
Definition blpapi_types.h:70
int blpapi_Bool_t
Definition blpapi_types.h:62
char blpapi_Char_t
Definition blpapi_types.h:63
float blpapi_Float32_t
Definition blpapi_types.h:71
long long blpapi_Int64_t
Definition blpapi_types.h:69
short blpapi_Int16_t
Definition blpapi_types.h:65
unsigned short blpapi_UInt16_t
Definition blpapi_types.h:66
unsigned int blpapi_UInt32_t
Definition blpapi_types.h:68
int blpapi_Int32_t
Definition blpapi_types.h:67
double blpapi_Float64_t
Definition blpapi_types.h:72
unsigned char blpapi_UChar_t
Definition blpapi_types.h:64
Definition blpapi_types.h:312
void assign(pointer ptr, size_type length) noexcept
Definition blpapi_types.h:496
iterator begin() const noexcept
Definition blpapi_types.h:502
const char * iterator
Definition blpapi_types.h:323
Bytes first(size_type count) const
Definition blpapi_types.h:543
reference back() const
Definition blpapi_types.h:523
Bytes last(size_type count) const
Definition blpapi_types.h:549
const char * const_iterator
Definition blpapi_types.h:324
Bytes() noexcept
Definition blpapi_types.h:484
const char element_type
Definition blpapi_types.h:315
reference operator[](size_type index) const
Definition blpapi_types.h:530
bool empty() const noexcept
Definition blpapi_types.h:541
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition blpapi_types.h:326
reverse_iterator rend() const noexcept
Definition blpapi_types.h:511
Bytes subspan(size_type offset, size_type count=static_cast< std::size_t >(-1)) const
Definition blpapi_types.h:555
pointer data() const noexcept
Definition blpapi_types.h:537
const char & reference
Definition blpapi_types.h:321
reverse_iterator rbegin() const noexcept
Definition blpapi_types.h:506
std::size_t size_type
Definition blpapi_types.h:317
std::reverse_iterator< iterator > reverse_iterator
Definition blpapi_types.h:325
size_type size() const noexcept
Definition blpapi_types.h:539
const char & const_reference
Definition blpapi_types.h:322
reference front() const
Definition blpapi_types.h:516
const char * pointer
Definition blpapi_types.h:319
iterator end() const noexcept
Definition blpapi_types.h:504
char value_type
Definition blpapi_types.h:316
std::ptrdiff_t difference_type
Definition blpapi_types.h:318
const char * const_pointer
Definition blpapi_types.h:320
struct blpapi_Service blpapi_Service_t
Definition blpapi_types.h:166
struct blpapi_EventQueue blpapi_EventQueue_t
Definition blpapi_types.h:148
struct blpapi_MessageProperties blpapi_MessageProperties_t
Definition blpapi_types.h:200
blpapi_Logging_Severity_t
Definition blpapi_types.h:116
struct blpapi_Constant blpapi_Constant_t
Definition blpapi_types.h:130
struct blpapi_Identity blpapi_Identity_t
Definition blpapi_types.h:188
struct blpapi_Event blpapi_Event_t
Definition blpapi_types.h:139
struct blpapi_Operation blpapi_Operation_t
Definition blpapi_types.h:157
struct blpapi_EventFormatter blpapi_EventFormatter_t
Definition blpapi_types.h:145
struct blpapi_MessageIterator blpapi_MessageIterator_t
Definition blpapi_types.h:151
struct blpapi_Session blpapi_Session_t
Definition blpapi_types.h:169
struct blpapi_MessageFormatter blpapi_MessageFormatter_t
Definition blpapi_types.h:197
struct blpapi_EventDispatcher blpapi_EventDispatcher_t
Definition blpapi_types.h:142
struct blpapi_Socks5Config blpapi_Socks5Config_t
Definition blpapi_types.h:175
struct blpapi_AuthApplication blpapi_AuthApplication_t
Definition blpapi_types.h:209
struct blpapi_Name blpapi_Name_t
Definition blpapi_types.h:154
struct blpapi_ConstantList blpapi_ConstantList_t
Definition blpapi_types.h:133
struct blpapi_SessionOptions blpapi_SessionOptions_t
Definition blpapi_types.h:172
struct blpapi_AuthOptions blpapi_AuthOptions_t
Definition blpapi_types.h:203
struct blpapi_Identity blpapi_UserHandle_t
Definition blpapi_types.h:185
struct blpapi_TlsOptions blpapi_TlsOptions_t
Definition blpapi_types.h:178
struct blpapi_AbstractSession blpapi_AbstractSession_t
Definition blpapi_types.h:127
struct blpapi_SubscriptionItrerator blpapi_SubscriptionIterator_t
Definition blpapi_types.h:181
struct blpapi_SchemaElementDefinition blpapi_SchemaElementDefinition_t
Definition blpapi_types.h:191
struct blpapi_AuthToken blpapi_AuthToken_t
Definition blpapi_types.h:212
struct blpapi_Element blpapi_Element_t
Definition blpapi_types.h:136
struct blpapi_Identity blpapi_UserHandle
Definition blpapi_types.h:184
struct blpapi_ProviderSession blpapi_ProviderSession_t
Definition blpapi_types.h:160
blpapi_DataType_t
Definition blpapi_types.h:80
struct blpapi_AuthUser blpapi_AuthUser_t
Definition blpapi_types.h:206
@ blpapi_Logging_SEVERITY_WARN
Definition blpapi_types.h:120
@ blpapi_Logging_SEVERITY_TRACE
Definition blpapi_types.h:123
@ blpapi_Logging_SEVERITY_FATAL
Definition blpapi_types.h:118
@ blpapi_Logging_SEVERITY_DEBUG
Definition blpapi_types.h:122
@ blpapi_Logging_SEVERITY_ERROR
Definition blpapi_types.h:119
@ blpapi_Logging_SEVERITY_OFF
Definition blpapi_types.h:117
@ blpapi_Logging_SEVERITY_INFO
Definition blpapi_types.h:121
@ BLPAPI_DATATYPE_STRING
ASCIIZ string.
Definition blpapi_types.h:95
@ BLPAPI_DATATYPE_CHAR
Char.
Definition blpapi_types.h:83
@ BLPAPI_DATATYPE_INT64
64 bit Integer
Definition blpapi_types.h:89
@ BLPAPI_DATATYPE_CORRELATION_ID
Used for some internal messages.
Definition blpapi_types.h:113
@ BLPAPI_DATATYPE_BYTEARRAY
Opaque binary data.
Definition blpapi_types.h:97
@ BLPAPI_DATATYPE_DATE
Date.
Definition blpapi_types.h:99
@ BLPAPI_DATATYPE_BYTE
Unsigned 8 bit value.
Definition blpapi_types.h:85
@ BLPAPI_DATATYPE_CHOICE
Choice type.
Definition blpapi_types.h:111
@ BLPAPI_DATATYPE_BOOL
Bool.
Definition blpapi_types.h:81
@ BLPAPI_DATATYPE_INT32
32 bit Integer
Definition blpapi_types.h:87
@ BLPAPI_DATATYPE_TIME
Timestamp.
Definition blpapi_types.h:101
@ BLPAPI_DATATYPE_DECIMAL
Definition blpapi_types.h:103
@ BLPAPI_DATATYPE_ENUMERATION
An opaque enumeration.
Definition blpapi_types.h:107
@ BLPAPI_DATATYPE_SEQUENCE
Sequence type.
Definition blpapi_types.h:109
@ BLPAPI_DATATYPE_FLOAT64
64 bit Floating point - IEEE
Definition blpapi_types.h:93
@ BLPAPI_DATATYPE_FLOAT32
32 bit Floating point - IEEE
Definition blpapi_types.h:91
@ BLPAPI_DATATYPE_DATETIME
Date and time.
Definition blpapi_types.h:105
blpapi_Char_t Char
Definition blpapi_types.h:465
blpapi_UInt32_t UInt32
Definition blpapi_types.h:470
blpapi_Bool_t Bool
Definition blpapi_types.h:464
blpapi_Float64_t Float64
Definition blpapi_types.h:474
blpapi_Float32_t Float32
Definition blpapi_types.h:473
blpapi_UInt64_t UInt64
Definition blpapi_types.h:472
blpapi_UInt16_t UInt16
Definition blpapi_types.h:468
blpapi_Int64_t Int64
Definition blpapi_types.h:471
blpapi_UChar_t UChar
Definition blpapi_types.h:466
blpapi_Int32_t Int32
Definition blpapi_types.h:469
blpapi_Int16_t Int16
Definition blpapi_types.h:467
Definition blpapi_abstractsession.h:195
Definition blpapi_types.h:241
Value
The possible data types which can be represented in an Element.
Definition blpapi_types.h:245
@ DATE
Date.
Definition blpapi_types.h:255
@ FLOAT32
32 bit Floating point
Definition blpapi_types.h:251
@ INT64
64 bit Integer
Definition blpapi_types.h:250
@ CHAR
Char.
Definition blpapi_types.h:247
@ DATETIME
Date and time.
Definition blpapi_types.h:258
@ FLOAT64
64 bit Floating point
Definition blpapi_types.h:252
@ BYTE
Unsigned 8 bit value.
Definition blpapi_types.h:248
@ CHOICE
Choice type.
Definition blpapi_types.h:261
@ SEQUENCE
Sequence type.
Definition blpapi_types.h:260
@ INT32
32 bit Integer
Definition blpapi_types.h:249
@ ENUMERATION
An opaque enumeration.
Definition blpapi_types.h:259
@ BYTEARRAY
Opaque binary data.
Definition blpapi_types.h:254
@ BOOL
Boolean.
Definition blpapi_types.h:246
@ TIME
Timestamp.
Definition blpapi_types.h:256
@ STRING
ASCIIZ string.
Definition blpapi_types.h:253
@ DECIMAL
Currently Unsupported.
Definition blpapi_types.h:257
@ CORRELATION_ID
Definition blpapi_types.h:262
Definition blpapi_datetime.h:102