38#ifndef INCLUDED_BLPAPI_TYPES
39#define INCLUDED_BLPAPI_TYPES
80typedef int blpapi_Bool_t;
82typedef char blpapi_Char_t;
84typedef unsigned char blpapi_UChar_t;
86typedef short blpapi_Int16_t;
88typedef unsigned short blpapi_UInt16_t;
90typedef int blpapi_Int32_t;
92typedef unsigned int blpapi_UInt32_t;
94typedef long long blpapi_Int64_t;
96typedef unsigned long long blpapi_UInt64_t;
98typedef float blpapi_Float32_t;
100typedef double blpapi_Float64_t;
102enum blpapi_DataType_t {
104 BLPAPI_DATATYPE_BOOL = 1,
106 BLPAPI_DATATYPE_CHAR = 2,
108 BLPAPI_DATATYPE_BYTE = 3,
110 BLPAPI_DATATYPE_INT32 = 4,
112 BLPAPI_DATATYPE_INT64 = 5,
114 BLPAPI_DATATYPE_FLOAT32 = 6,
116 BLPAPI_DATATYPE_FLOAT64 = 7,
118 BLPAPI_DATATYPE_STRING = 8,
120 BLPAPI_DATATYPE_BYTEARRAY = 9,
122 BLPAPI_DATATYPE_DATE = 10,
124 BLPAPI_DATATYPE_TIME = 11,
126 BLPAPI_DATATYPE_DECIMAL = 12,
128 BLPAPI_DATATYPE_DATETIME = 13,
130 BLPAPI_DATATYPE_ENUMERATION = 14,
132 BLPAPI_DATATYPE_SEQUENCE = 15,
134 BLPAPI_DATATYPE_CHOICE = 16,
136 BLPAPI_DATATYPE_CORRELATION_ID = 17
140typedef enum blpapi_Logging_Severity_t {
142 blpapi_Logging_SEVERITY_OFF = 0,
144 blpapi_Logging_SEVERITY_FATAL = 1,
146 blpapi_Logging_SEVERITY_ERROR = 2,
148 blpapi_Logging_SEVERITY_WARN = 3,
150 blpapi_Logging_SEVERITY_INFO = 4,
152 blpapi_Logging_SEVERITY_DEBUG = 5,
154 blpapi_Logging_SEVERITY_TRACE = 6
155} blpapi_Logging_Severity_t;
157struct blpapi_AbstractSession;
159typedef struct blpapi_AbstractSession blpapi_AbstractSession_t;
161struct blpapi_Constant;
163typedef struct blpapi_Constant blpapi_Constant_t;
165struct blpapi_ConstantList;
167typedef struct blpapi_ConstantList blpapi_ConstantList_t;
169struct blpapi_Element;
171typedef struct blpapi_Element blpapi_Element_t;
175typedef struct blpapi_Event blpapi_Event_t;
177struct blpapi_EventDispatcher;
179typedef struct blpapi_EventDispatcher blpapi_EventDispatcher_t;
181struct blpapi_EventFormatter;
183typedef struct blpapi_EventFormatter blpapi_EventFormatter_t;
185struct blpapi_EventQueue;
187typedef struct blpapi_EventQueue blpapi_EventQueue_t;
189struct blpapi_MessageIterator;
191typedef struct blpapi_MessageIterator blpapi_MessageIterator_t;
195typedef struct blpapi_Name blpapi_Name_t;
197struct blpapi_Operation;
199typedef struct blpapi_Operation blpapi_Operation_t;
201struct blpapi_ProviderSession;
203typedef struct blpapi_ProviderSession blpapi_ProviderSession_t;
205struct blpapi_RequestTemplate;
207typedef struct blpapi_RequestTemplate blpapi_RequestTemplate_t;
209struct blpapi_Service;
211typedef struct blpapi_Service blpapi_Service_t;
213struct blpapi_Session;
215typedef struct blpapi_Session blpapi_Session_t;
217struct blpapi_SessionOptions;
219typedef struct blpapi_SessionOptions blpapi_SessionOptions_t;
221struct blpapi_Socks5Config;
223typedef struct blpapi_Socks5Config blpapi_Socks5Config_t;
225struct blpapi_TlsOptions;
227typedef struct blpapi_TlsOptions blpapi_TlsOptions_t;
229struct blpapi_SubscriptionItrerator;
231typedef struct blpapi_SubscriptionItrerator blpapi_SubscriptionIterator_t;
233struct blpapi_Identity;
238typedef struct blpapi_Identity blpapi_UserHandle;
243typedef struct blpapi_Identity blpapi_UserHandle_t;
245typedef struct blpapi_Identity blpapi_Identity_t;
247struct blpapi_SchemaElementDefinition;
249typedef struct blpapi_SchemaElementDefinition blpapi_SchemaElementDefinition_t;
251struct blpapi_Datetime_tag;
253typedef struct blpapi_Datetime_tag blpapi_Datetime_t;
255struct blpapi_MessageFormatter;
257typedef struct blpapi_MessageFormatter blpapi_MessageFormatter_t;
259struct blpapi_MessageProperties;
261typedef struct blpapi_MessageProperties blpapi_MessageProperties_t;
263struct blpapi_AuthOptions;
265typedef struct blpapi_AuthOptions blpapi_AuthOptions_t;
267struct blpapi_AuthUser;
269typedef struct blpapi_AuthUser blpapi_AuthUser_t;
271struct blpapi_AuthApplication;
273typedef struct blpapi_AuthApplication blpapi_AuthApplication_t;
275struct blpapi_AuthToken;
277typedef struct blpapi_AuthToken blpapi_AuthToken_t;
288#include <type_traits>
350#ifndef DOXYGEN_SHOULD_SKIP_THIS
352template <
typename T,
typename U =
bool>
struct IsString : std::false_type { };
356 typename std::enable_if<
357 std::is_member_function_pointer<decltype(&T::c_str)>::value,
358 bool>::type> : std::true_type { };
360template <
typename T,
typename U =
bool>
361struct IsByteSequence : std::false_type { };
364struct IsByteSequence<T,
365 typename std::enable_if<
366 std::is_member_function_pointer<
367 decltype(static_cast<const typename T::value_type *(
368 T::*)() const>(&T::data))>::value
369 && sizeof(typename T::value_type) == 1
370 && !IsString<T>::value,
371 bool>::type> : std::true_type { };
373template <
typename T,
typename ITER,
typename U =
bool>
374struct IsByteContainer : std::false_type { };
376template <
typename T,
typename ITER>
377struct IsByteContainer<T,
379 typename std::enable_if<std::is_constructible<T, ITER, ITER>::value
380 && sizeof(typename T::value_type) == 1,
381 bool>::type> : std::true_type { };
408 typedef std::reverse_iterator<iterator>
410 typedef std::reverse_iterator<const_iterator>
498 bool empty() const noexcept;
518 size_type count = static_cast<std::
size_t>(-1)) const;
530 template <typename BYTE_CONTAINER,
531 typename std::enable_if<
532 IsByteContainer<BYTE_CONTAINER,
iterator>::value,
535 operator BYTE_CONTAINER() const;
612 return d_ptr[d_length - 1];
618 assert(index < d_length);
630 assert(count <= d_length);
631 return Bytes(d_ptr, count);
636 assert(count <= d_length);
637 return Bytes(d_ptr + d_length - count, count);
642 assert(offset <= d_length);
643 assert(count ==
static_cast<std::size_t
>(-1)
644 || count <= d_length - offset);
645 return Bytes(d_ptr + offset,
646 count ==
static_cast<std::size_t
>(-1) ? d_length - offset : count);
649template <
typename BYTE_CONTAINER,
650 typename std::enable_if<
651 IsByteContainer<BYTE_CONTAINER, Bytes::iterator>::value,
653inline Bytes::operator BYTE_CONTAINER()
const
655 assert(d_ptr || d_length == 0);
656 return BYTE_CONTAINER(
begin(),
end());
void assign(pointer ptr, size_type length) noexcept
Definition blpapi_types.h:581
iterator begin() const noexcept
Definition blpapi_types.h:587
const char * iterator
Iterator type (const char*).
Definition blpapi_types.h:406
Bytes first(size_type count) const
Definition blpapi_types.h:628
reference back() const
Definition blpapi_types.h:608
Bytes last(size_type count) const
Definition blpapi_types.h:634
const char * const_iterator
Const iterator type (const char*).
Definition blpapi_types.h:407
Bytes() noexcept
Definition blpapi_types.h:569
const char element_type
The element type (const char).
Definition blpapi_types.h:398
reference operator[](size_type index) const
Definition blpapi_types.h:615
bool empty() const noexcept
Definition blpapi_types.h:626
std::reverse_iterator< const_iterator > const_reverse_iterator
Const reverse iterator type.
Definition blpapi_types.h:411
reverse_iterator rend() const noexcept
Definition blpapi_types.h:596
Bytes subspan(size_type offset, size_type count=static_cast< std::size_t >(-1)) const
Definition blpapi_types.h:640
pointer data() const noexcept
Definition blpapi_types.h:622
const char & reference
Reference to element.
Definition blpapi_types.h:404
reverse_iterator rbegin() const noexcept
Definition blpapi_types.h:591
std::size_t size_type
Unsigned size type.
Definition blpapi_types.h:400
std::reverse_iterator< iterator > reverse_iterator
Reverse iterator type.
Definition blpapi_types.h:409
size_type size() const noexcept
Definition blpapi_types.h:624
const char & const_reference
Const reference to element.
Definition blpapi_types.h:405
reference front() const
Definition blpapi_types.h:601
const char * pointer
Pointer to element.
Definition blpapi_types.h:402
iterator end() const noexcept
Definition blpapi_types.h:589
char value_type
The value type (char).
Definition blpapi_types.h:399
std::ptrdiff_t difference_type
Signed difference type.
Definition blpapi_types.h:401
const char * const_pointer
Const pointer to element.
Definition blpapi_types.h:403
Definition blpapi_abstractsession.h:452
blpapi_Char_t Char
8-bit character type alias.
Definition blpapi_types.h:550
blpapi_UInt32_t UInt32
32-bit unsigned integer type alias.
Definition blpapi_types.h:555
blpapi_Bool_t Bool
Boolean type alias.
Definition blpapi_types.h:549
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_UInt64_t UInt64
64-bit unsigned integer type alias.
Definition blpapi_types.h:557
blpapi_UInt16_t UInt16
16-bit unsigned integer type alias.
Definition blpapi_types.h:553
blpapi_Int64_t Int64
64-bit signed integer type alias.
Definition blpapi_types.h:556
blpapi_UChar_t UChar
8-bit unsigned integer type alias.
Definition blpapi_types.h:551
blpapi_Int32_t Int32
32-bit signed integer type alias.
Definition blpapi_types.h:554
blpapi_Int16_t Int16
16-bit signed integer type alias.
Definition blpapi_types.h:552
Definition blpapi_abstractsession.h:451
Definition blpapi_types.h:307
Value
The possible data types which can be represented in an Element.
Definition blpapi_types.h:311
@ DATE
Date.
Definition blpapi_types.h:331
@ FLOAT32
32 bit Floating point
Definition blpapi_types.h:323
@ INT64
64 bit Integer
Definition blpapi_types.h:321
@ CHAR
Char.
Definition blpapi_types.h:315
@ DATETIME
Date and time.
Definition blpapi_types.h:337
@ FLOAT64
64 bit Floating point
Definition blpapi_types.h:325
@ BYTE
Unsigned 8 bit value.
Definition blpapi_types.h:317
@ CHOICE
Choice type.
Definition blpapi_types.h:343
@ SEQUENCE
Sequence type.
Definition blpapi_types.h:341
@ INT32
32 bit Integer
Definition blpapi_types.h:319
@ ENUMERATION
An opaque enumeration.
Definition blpapi_types.h:339
@ BYTEARRAY
Opaque binary data.
Definition blpapi_types.h:329
@ BOOL
Boolean.
Definition blpapi_types.h:313
@ TIME
Timestamp.
Definition blpapi_types.h:333
@ STRING
ASCIIZ string.
Definition blpapi_types.h:327
@ DECIMAL
Currently Unsupported.
Definition blpapi_types.h:335
@ CORRELATION_ID
Used for some.
Definition blpapi_types.h:345