All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.microsoft.azure.servicebus.ISubscriptionClient Maven / Gradle / Ivy

Go to download

Java library for Azure Service Bus. Please note, a newer package com.azure:azure-messaging-servicebus for Azure Service Bus is available as of December 2020. While this package will continue to receive critical bug fixes, we strongly encourage you to upgrade. Read the migration guide at https://aka.ms/azsdk/java/migrate/sb for more details.

There is a newer version: 3.6.7
Show newest version
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.azure.servicebus;

import java.util.Collection;
import java.util.concurrent.CompletableFuture;

import com.microsoft.azure.servicebus.primitives.ServiceBusException;
import com.microsoft.azure.servicebus.rules.Filter;
import com.microsoft.azure.servicebus.rules.RuleDescription;

/**
 * SubscriptionClient can be used for all basic interactions with a Service Bus Subscription.
 */
public interface ISubscriptionClient extends IMessageEntityClient, IMessageAndSessionPump {

    /**
     * Gets the {@link ReceiveMode} of the current receiver
     *
     * @return The receive mode.
     */
    ReceiveMode getReceiveMode();

    /**
     * Adds a rule to the current subscription to filter the messages reaching from topic to the subscription.
     *
     * @param ruleDescription The rule description that provides the rule to add.
     * @throws InterruptedException if the current thread was interrupted while waiting
     * @throws ServiceBusException  if add rule failed
     */
    void addRule(RuleDescription ruleDescription) throws InterruptedException, ServiceBusException;

    /**
     * Asynchronously adds a rule to the current subscription to filter the messages reaching from topic to the subscription.
     *
     * @param ruleDescription The rule description that provides the rule to add.
     * @return a CompletableFuture representing the pending rule add operation.
     */
    CompletableFuture addRuleAsync(RuleDescription ruleDescription);

    /**
     * Adds a rule with specified name and {@link Filter} to the current subscription to filter the messages reaching from topic to the subscription.
     *
     * @param ruleName The rule name
     * @param filter   The {@link Filter} to add.
     * @throws InterruptedException if the current thread was interrupted while waiting
     * @throws ServiceBusException  if add rule failed
     */
    void addRule(String ruleName, Filter filter) throws InterruptedException, ServiceBusException;

    /**
     * Asynchronously adds a rule with specified name and {@link Filter} to the current subscription to filter the messages reaching from topic to the subscription.
     *
     * @param ruleName The rule name
     * @param filter   The {@link Filter} to add.
     * @return a CompletableFuture representing the pending rule add operation.
     */
    CompletableFuture addRuleAsync(String ruleName, Filter filter);

    /**
     * Asynchronously removes the rule on the subscription identified by ruleName
     *
     * @param ruleName he name of rule.
     * @return a CompletableFuture representing the pending rule remove operation.
     */
    CompletableFuture removeRuleAsync(String ruleName);

    /**
     * Removes the rule on the subscription identified by ruleName
     *
     * @param ruleName The name of rule.
     * @throws InterruptedException if the current thread was interrupted while waiting
     * @throws ServiceBusException  if remove rule failed
     */
    void removeRule(String ruleName) throws InterruptedException, ServiceBusException;

    /**
     * Get all rules associated with the subscription.
     *
     * @return The collection fo the rules.
     * @throws InterruptedException if the current thread was interrupted while waiting
     * @throws ServiceBusException  if get rules failed
     */
    Collection getRules() throws ServiceBusException, InterruptedException;

    /**
     * Get all rules associated with the subscription.
     *
     * @return a CompletableFuture representing the pending get rules operation.
     */
    CompletableFuture> getRulesAsync();

    /**
     * Gets the name of the topic, for this subscription.
     *
     * @return the name of the topic
     */
    String getTopicName();

    /**
     * Gets the subscription name.
     * @return The subscription name.
     */
    String getSubscriptionName();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy