Interface PagedTopicService

All Superinterfaces:
CacheService, ClassLoaderAware, Controllable, DistributedCacheService, PartitionedService, Service, Service, com.tangosol.internal.tracing.SpanDecorator, TopicService

public interface PagedTopicService extends TopicService, DistributedCacheService
A TopicService which provides globally ordered topics.
  • Field Details

    • TOPIC_API_v0

      static final int TOPIC_API_v0
      Topic API version zero 14.1.1.2206.2 and below 22.09.*
      See Also:
    • TOPIC_API_v1

      static final int TOPIC_API_v1
      Topic API version one 14.1.1.2206.3 - 14.1.1.2206.5 23.03.0 - 22.03.1
      See Also:
    • TOPIC_API_v2

      static final int TOPIC_API_v2
      Topic API version two 14.1.1.2206.6 -> and above 23.03.2 and above
      See Also:
    • TOPIC_API_v3

      static final int TOPIC_API_v3
      Topic API version three 15.1.1.0.0 -> and above patch compatible 14.1.2.0.4 patch compatible 14.1.1.2206.14
      See Also:
  • Method Details

    • ensureSubscription

      long ensureSubscription(String sTopicName, com.tangosol.internal.net.topic.impl.paged.model.SubscriberGroupId groupId, Subscriber.Id subscriberId, Filter<?> filter, ValueExtractor<?,?> extractor)
      Ensure the specified subscriber is created in a subscription.
      Parameters:
      sTopicName - the name of the topic
      groupId - the id of the subscriber group
      subscriberId - the Subscriber.Id
      filter - the Filter to use to filter messages sent to subscribers
      extractor - the ValueExtractor to use to convert messages sent to subscribers
      Returns:
      the unique identifier of the subscriber group the Subscriber is subscribed to, of -1 if the cluster is not version compatible and cannot create subscriptions
    • ensureSubscription

      long ensureSubscription(String sTopicName, com.tangosol.internal.net.topic.impl.paged.model.SubscriberGroupId groupId, Subscriber.Id subscriberId, Filter<?> filter, ValueExtractor<?,?> extractor, int[] anChannel)
      Ensure the specified subscriber is created in a subscription.
      Parameters:
      sTopicName - the name of the topic
      groupId - the id of the subscriber group
      subscriberId - the Subscriber.Id
      filter - the Filter to use to filter messages sent to subscribers
      extractor - the ValueExtractor to use to convert messages sent to subscribers
      anChannel - the channels to manually allocate to the subscriber
      Returns:
      the unique identifier of the subscriber group the Subscriber is subscribed to, of -1 if the cluster is not version compatible and cannot create subscriptions
    • ensureSubscription

      void ensureSubscription(String sTopicName, long lSubscription, Subscriber.Id subscriberId)
      Ensure the specified subscriber is subscribed to a subscription.
      Parameters:
      sTopicName - the name of the topic
      lSubscription - the unique id of the subscriber group
      subscriberId - the Subscriber.Id
    • ensureSubscription

      void ensureSubscription(String sTopicName, long lSubscription, Subscriber.Id subscriberId, boolean fForceReconnect)
      Ensure the specified subscriber is subscribed to a subscription.
      Parameters:
      sTopicName - the name of the topic
      lSubscription - the unique id of the subscriber group
      subscriberId - the Subscriber.Id
      fForceReconnect - force a reconnection even if the subscriber is known to the service
    • ensureSubscription

      void ensureSubscription(String sTopicName, long lSubscription, Subscriber.Id subscriberId, boolean fForceReconnect, int[] anChannel)
      Ensure the specified subscriber is subscribed to a subscription.
      Parameters:
      sTopicName - the name of the topic
      lSubscription - the unique id of the subscriber group
      subscriberId - the Subscriber.Id
      fForceReconnect - force a reconnection even if the subscriber is known to the service
    • destroySubscription

      void destroySubscription(long lSubscriptionId, Subscriber.Id subscriberId)
      Remove an existing subscriber from a subscriber group.
      Parameters:
      lSubscriptionId - the subscription identifier
      subscriberId - the Subscriber.Id
    • destroySubscription

      void destroySubscription(long lSubscriptionId)
      Remove an existing subscriber group.
      Parameters:
      lSubscriptionId - the subscription identifier
    • hasSubscription

      boolean hasSubscription(long lSubscriptionId)
      Determine whether a subscriber group exists.
      Parameters:
      lSubscriptionId - the id of the subscription to return
      Returns:
      true if the group exists
    • isSubscriptionDestroyed

      boolean isSubscriptionDestroyed(long lSubscriptionId)
      Determine whether a subscriber group has been destroyed.
      Parameters:
      lSubscriptionId - the unique identifier of the subscriber group
      Returns:
      true if the group has been destroyed
    • getSubscription

      com.tangosol.internal.net.topic.impl.paged.model.PagedTopicSubscription getSubscription(long lSubscriptionId)
      Return a PagedTopicSubscription.
      Parameters:
      lSubscriptionId - the id of the subscription to return
      Returns:
      the specified PagedTopicSubscription or null if the subscription does not exist.
    • getSubscriptionId

      long getSubscriptionId(String sTopicName, com.tangosol.internal.net.topic.impl.paged.model.SubscriberGroupId groupId)
      Return the subscription id for a subscriber group.
      Parameters:
      sTopicName - the name of the topic
      groupId - the identifier for the subscriber group
      Returns:
      the subscription id for a subscriber group or zero if the subscription does not exist.
    • getTopicStatistics

      com.tangosol.internal.net.topic.impl.paged.statistics.PagedTopicStatistics getTopicStatistics(String sTopicName)
      Returns the PagedTopicStatistics for a topic.
      Parameters:
      sTopicName - the name of the topic
      Returns:
      the PagedTopicStatistics for the topic or null if no statistics exist for the topic
    • getSubscribers

      Set<com.tangosol.internal.net.topic.impl.paged.model.SubscriberId> getSubscribers(String sTopicName, com.tangosol.internal.net.topic.impl.paged.model.SubscriberGroupId groupId)
      Returns the subscriber ids known to this service and subscribed to a subscriber group for a topic .
      Returns:
      the subscriber ids known to this service and subscribed to a subscriber group for a topic
    • hasSubscribers

      boolean hasSubscribers(String sTopicName)
      Returns true if the specified topic has subscribers or subscriber groups.
      Parameters:
      sTopicName - the name of the topic
      Returns:
      true if the specified topic has subscribers or subscriber groups
    • getSubscriptionCount

      long getSubscriptionCount(String sTopicName)
      Returns the count of subscriptions for the specified topic.
      Parameters:
      sTopicName - the name of the topic
      Returns:
      the count of subscriptions for the specified topic
    • addSubscriptionListener

      void addSubscriptionListener(com.tangosol.internal.net.topic.impl.paged.model.PagedTopicSubscription.Listener listener)
      Add a listener that will be notified when changes are made to topic subscriptions.
      Parameters:
      listener - the listener to add
    • removeSubscriptionListener

      void removeSubscriptionListener(com.tangosol.internal.net.topic.impl.paged.model.PagedTopicSubscription.Listener listener)
      Remove a listener that was being notified when changes are made to topic subscriptions.
      Parameters:
      listener - the listener to remove
    • getRemainingMessages

      int getRemainingMessages(String sTopic, com.tangosol.internal.net.topic.impl.paged.model.SubscriberGroupId subscriberGroupId, int... anChannel)
      Return the number messages remaining in the topic after the last committed message.

      This value is a count of messages remaining to be polled after the last committed message. If a subscriber has received multiple messages but not committed any of them then the count of remaining messages will remain unchanged.

      This value is transitive and could already have changed by another in-flight commit request immediately after this value is returned.

      Note, getting the total remaining messages count is a cluster wide operation as the value is stored by each member.

      Parameters:
      sTopic - the name of the topic
      subscriberGroupId - the subscriber group
      anChannel - the channels to get the remaining message count from, or specify no channels to return the count for all channels
      Returns:
      the number of unread messages
    • getCurrentClusterTopicsApiVersion

      int getCurrentClusterTopicsApiVersion()
      Return the minimum topics API version supported by the cluster members.
      Returns:
      the minimum topics API version supported by cluster members