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. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

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.
     */
    public 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
     */
    public 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.
     */
    public 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
     */
    public 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.
     */
    public 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.
     */
    public 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
     */
    public 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
     */
    public Collection getRules() throws ServiceBusException, InterruptedException;

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

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy