38#ifndef INCLUDED_BLPAPI_SUBSCRIPTIONLIST
39#define INCLUDED_BLPAPI_SUBSCRIPTIONLIST
203#include <blpapi_deprecate.h>
209struct blpapi_SubscriptionList;
215typedef struct blpapi_SubscriptionList blpapi_SubscriptionList_t;
228blpapi_SubscriptionList_t *blpapi_SubscriptionList_create(
void);
238void blpapi_SubscriptionList_destroy(blpapi_SubscriptionList_t *list);
261int blpapi_SubscriptionList_add(blpapi_SubscriptionList_t *list,
262 const char *subscriptionString,
263 const blpapi_CorrelationId_t *correlationId,
265 const char **options,
287int blpapi_SubscriptionList_addResolved(blpapi_SubscriptionList_t *list,
288 const char *subscriptionString,
289 const blpapi_CorrelationId_t *correlationId);
300int blpapi_SubscriptionList_clear(blpapi_SubscriptionList_t *list);
314int blpapi_SubscriptionList_append(
315 blpapi_SubscriptionList_t *dest,
const blpapi_SubscriptionList_t *src);
325int blpapi_SubscriptionList_size(
const blpapi_SubscriptionList_t *list);
340int blpapi_SubscriptionList_correlationIdAt(
341 const blpapi_SubscriptionList_t *list,
342 blpapi_CorrelationId_t *result,
360int blpapi_SubscriptionList_topicStringAt(
361 blpapi_SubscriptionList_t *list,
const char **result,
size_t index);
380int blpapi_SubscriptionList_isResolvedAt(
381 blpapi_SubscriptionList_t *list,
int *result,
size_t index);
416 blpapi_SubscriptionList_t *d_handle_p;
436 int add(
const char *subscriptionString);
446 int add(
const char *subscriptionString,
457 int add(
const char *subscriptionWithoutOptions,
458 const std::vector<std::string>& fields,
459 const std::vector<std::string>& options,
468 int add(
const char *subscriptionWithoutOptions,
488 BLPAPI_DEPRECATE_PRERESOLVED_TOPICS
int addResolved(
489 const char *subscriptionString);
506 BLPAPI_DEPRECATE_PRERESOLVED_TOPICS
int addResolved(
507 const char *subscriptionString,
586 const blpapi_SubscriptionList_t *impl()
const;
601 : d_handle_p(blpapi_SubscriptionList_create())
606 : d_handle_p(blpapi_SubscriptionList_create())
608 blpapi_SubscriptionList_append(d_handle_p, original.d_handle_p);
613 blpapi_SubscriptionList_destroy(d_handle_p);
618 blpapi_CorrelationId_t correlationId;
619 std::memset(&correlationId, 0,
sizeof(correlationId));
620 return blpapi_SubscriptionList_add(
621 d_handle_p, subscriptionString, &correlationId, 0, 0, 0, 0);
625 const char *subscriptionString,
const CorrelationId& correlationId)
627 return blpapi_SubscriptionList_add(
628 d_handle_p, subscriptionString, &correlationId.impl(), 0, 0, 0, 0);
632 const std::vector<std::string>& fields,
633 const std::vector<std::string>& options,
636 std::vector<const char *> tmpVector;
637 const char *arena[256];
638 const char **tmpArray = arena;
639 size_t sizeNeeded = fields.size() + options.size();
641 if (sizeNeeded >
sizeof(arena) /
sizeof(arena[0])) {
642 tmpVector.resize(sizeNeeded);
643 tmpArray = &tmpVector[0];
646 const char **p = tmpArray;
647 for (std::vector<std::string>::const_iterator itr = fields.begin(),
654 for (std::vector<std::string>::const_iterator itr = options.begin(),
661 return blpapi_SubscriptionList_add(d_handle_p,
663 &correlationId.impl(),
665 tmpArray + fields.size(),
675 return blpapi_SubscriptionList_add(d_handle_p,
677 &correlationId.impl(),
686 return blpapi_SubscriptionList_add(
687 d_handle_p,
"", &correlationId.impl(), 0, 0, 0, 0);
692 blpapi_CorrelationId_t correlationId;
693 std::memset(&correlationId, 0,
sizeof(correlationId));
694 return BLPAPI_CALL_SUBSCRIPTIONLIST_ADDRESOLVED(
695 d_handle_p, subscriptionString, &correlationId);
699 const char *subscriptionString,
const CorrelationId& correlationId)
701 return BLPAPI_CALL_SUBSCRIPTIONLIST_ADDRESOLVED(
702 d_handle_p, subscriptionString, &correlationId.impl());
707 return blpapi_SubscriptionList_append(d_handle_p, other.d_handle_p);
712 blpapi_SubscriptionList_clear(d_handle_p);
718 if (d_handle_p != rhs.d_handle_p) {
719 blpapi_SubscriptionList_clear(d_handle_p);
720 blpapi_SubscriptionList_append(d_handle_p, rhs.d_handle_p);
727 return static_cast<size_t>(blpapi_SubscriptionList_size(d_handle_p));
732 blpapi_CorrelationId_t correlationId;
735 d_handle_p, &correlationId, index));
742 const char *result = 0;
745 blpapi_SubscriptionList_topicStringAt(d_handle_p, &result, index));
755 d_handle_p, &result, index));
757 return result ? true :
false;
761inline const blpapi_SubscriptionList_t *SubscriptionList::impl()
const
Provide functions for dispatchtbl.
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:306
static void throwOnError(int errorCode)
Definition blpapi_exception.h:556
const char * topicStringAt(size_t index) const
Definition blpapi_subscriptionlist.h:740
size_t size() const
Definition blpapi_subscriptionlist.h:725
SubscriptionList()
Definition blpapi_subscriptionlist.h:600
SubscriptionList & operator=(const SubscriptionList &rhs)
Definition blpapi_subscriptionlist.h:715
~SubscriptionList()
Definition blpapi_subscriptionlist.h:611
int append(const SubscriptionList &other)
Definition blpapi_subscriptionlist.h:705
CorrelationId correlationIdAt(size_t index) const
Definition blpapi_subscriptionlist.h:730
int addResolved(const char *subscriptionString)
Definition blpapi_subscriptionlist.h:690
int add(const char *subscriptionString)
Definition blpapi_subscriptionlist.h:616
void clear()
Definition blpapi_subscriptionlist.h:710
bool isResolvedTopicAt(size_t index) const
Definition blpapi_subscriptionlist.h:750
Definition blpapi_abstractsession.h:452
Definition blpapi_abstractsession.h:451