36#ifndef INCLUDED_BLPAPI_SUBSCRIPTIONLIST
37#define INCLUDED_BLPAPI_SUBSCRIPTIONLIST
212#include <blpapi_deprecate.h>
217struct blpapi_SubscriptionList;
223typedef struct blpapi_SubscriptionList blpapi_SubscriptionList_t;
230blpapi_SubscriptionList_t *blpapi_SubscriptionList_create(
void);
233void blpapi_SubscriptionList_destroy(blpapi_SubscriptionList_t *list);
236int blpapi_SubscriptionList_add(blpapi_SubscriptionList_t *list,
237 const char *subscriptionString,
238 const blpapi_CorrelationId_t *correlationId,
240 const char **options,
245int blpapi_SubscriptionList_addResolved(blpapi_SubscriptionList_t *list,
246 const char *subscriptionString,
247 const blpapi_CorrelationId_t *correlationId);
250int blpapi_SubscriptionList_clear(blpapi_SubscriptionList_t *list);
253int blpapi_SubscriptionList_append(
254 blpapi_SubscriptionList_t *dest,
const blpapi_SubscriptionList_t *src);
257int blpapi_SubscriptionList_size(
const blpapi_SubscriptionList_t *list);
260int blpapi_SubscriptionList_correlationIdAt(
261 const blpapi_SubscriptionList_t *list,
262 blpapi_CorrelationId_t *result,
266int blpapi_SubscriptionList_topicStringAt(
267 blpapi_SubscriptionList_t *list,
const char **result,
size_t index);
270int blpapi_SubscriptionList_isResolvedAt(
271 blpapi_SubscriptionList_t *list,
int *result,
size_t index);
279#ifndef INCLUDED_CSTRING
281#define INCLUDED_CSTRING
284#ifndef INCLUDED_STRING
286#define INCLUDED_STRING
289#ifndef INCLUDED_VECTOR
291#define INCLUDED_VECTOR
318 blpapi_SubscriptionList_t *d_handle_p;
338 int add(
const char *subscriptionString);
348 int add(
const char *subscriptionString,
359 int add(
const char *subscriptionWithoutOptions,
360 const std::vector<std::string>& fields,
361 const std::vector<std::string>& options,
370 int add(
const char *subscriptionWithoutOptions,
390 BLPAPI_DEPRECATE_PRERESOLVED_TOPICS
int addResolved(
391 const char *subscriptionString);
408 BLPAPI_DEPRECATE_PRERESOLVED_TOPICS
int addResolved(
409 const char *subscriptionString,
488 const blpapi_SubscriptionList_t *impl()
const;
503 : d_handle_p(blpapi_SubscriptionList_create())
508 : d_handle_p(blpapi_SubscriptionList_create())
510 blpapi_SubscriptionList_append(d_handle_p, original.d_handle_p);
515 blpapi_SubscriptionList_destroy(d_handle_p);
520 blpapi_CorrelationId_t correlationId;
521 std::memset(&correlationId, 0,
sizeof(correlationId));
522 return blpapi_SubscriptionList_add(
523 d_handle_p, subscriptionString, &correlationId, 0, 0, 0, 0);
527 const char *subscriptionString,
const CorrelationId& correlationId)
529 return blpapi_SubscriptionList_add(
530 d_handle_p, subscriptionString, &correlationId.impl(), 0, 0, 0, 0);
534 const std::vector<std::string>& fields,
535 const std::vector<std::string>& options,
538 std::vector<const char *> tmpVector;
539 const char *arena[256];
540 const char **tmpArray = arena;
541 size_t sizeNeeded = fields.size() + options.size();
543 if (sizeNeeded >
sizeof(arena) /
sizeof(arena[0])) {
544 tmpVector.resize(sizeNeeded);
545 tmpArray = &tmpVector[0];
548 const char **p = tmpArray;
549 for (std::vector<std::string>::const_iterator itr = fields.begin(),
556 for (std::vector<std::string>::const_iterator itr = options.begin(),
563 return blpapi_SubscriptionList_add(d_handle_p,
565 &correlationId.impl(),
567 tmpArray + fields.size(),
577 return blpapi_SubscriptionList_add(d_handle_p,
579 &correlationId.impl(),
588 return blpapi_SubscriptionList_add(
589 d_handle_p,
"", &correlationId.impl(), 0, 0, 0, 0);
594 blpapi_CorrelationId_t correlationId;
595 std::memset(&correlationId, 0,
sizeof(correlationId));
597 d_handle_p, subscriptionString, &correlationId);
601 const char *subscriptionString,
const CorrelationId& correlationId)
604 d_handle_p, subscriptionString, &correlationId.impl());
609 return blpapi_SubscriptionList_append(d_handle_p, other.d_handle_p);
614 blpapi_SubscriptionList_clear(d_handle_p);
620 if (d_handle_p != rhs.d_handle_p) {
621 blpapi_SubscriptionList_clear(d_handle_p);
622 blpapi_SubscriptionList_append(d_handle_p, rhs.d_handle_p);
629 return static_cast<size_t>(blpapi_SubscriptionList_size(d_handle_p));
634 blpapi_CorrelationId_t correlationId;
637 d_handle_p, &correlationId, index));
644 const char *result = 0;
647 blpapi_SubscriptionList_topicStringAt(d_handle_p, &result, index));
657 d_handle_p, &result, index));
659 return result ? true :
false;
662inline const blpapi_SubscriptionList_t *SubscriptionList::impl()
const
Provide functions for dispatchtbl.
#define BLPAPI_CALL_SUBSCRIPTIONLIST_ADDRESOLVED(a1, a2, a3)
Definition blpapi_call.h:423
#define BLPAPI_CALL_SUBSCRIPTIONLIST_ISRESOLVEDAT(a1, a2, a3)
Definition blpapi_call.h:425
Provide a key to identify individual subscriptions or requests.
Common definitions used by the library.
Defines Exceptions that can be thrown by the blpapi library.
Definition blpapi_correlationid.h:225
static void throwOnError(int errorCode)
Definition blpapi_exception.h:541
const char * topicStringAt(size_t index) const
Definition blpapi_subscriptionlist.h:642
size_t size() const
Definition blpapi_subscriptionlist.h:627
SubscriptionList()
Definition blpapi_subscriptionlist.h:502
SubscriptionList & operator=(const SubscriptionList &rhs)
Definition blpapi_subscriptionlist.h:617
~SubscriptionList()
Definition blpapi_subscriptionlist.h:513
int append(const SubscriptionList &other)
Definition blpapi_subscriptionlist.h:607
CorrelationId correlationIdAt(size_t index) const
Definition blpapi_subscriptionlist.h:632
int addResolved(const char *subscriptionString)
Definition blpapi_subscriptionlist.h:592
int add(const char *subscriptionString)
Definition blpapi_subscriptionlist.h:518
void clear()
Definition blpapi_subscriptionlist.h:612
bool isResolvedTopicAt(size_t index) const
Definition blpapi_subscriptionlist.h:652
Definition blpapi_abstractsession.h:211