
org.redisson.api.RTopicReactive Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of redisson Show documentation
Show all versions of redisson Show documentation
Redis Java client with features of In-Memory Data Grid
/**
* Copyright (c) 2013-2024 Nikita Koksharov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.redisson.api;
import java.util.List;
import org.redisson.api.listener.MessageListener;
import org.redisson.api.listener.StatusListener;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
/**
* Reactive interface for Publish Subscribe object. Messages are delivered to all message listeners across Redis cluster.
*
* @author Nikita Koksharov
*
*/
public interface RTopicReactive {
/**
* Get topic channel names
*
* @return channel names
*/
List getChannelNames();
/**
* Publish the message to all subscribers of this topic asynchronously
*
* @param message to send
* @return the Future
object with number of clients that received the message
*/
Mono publish(Object message);
/**
* Subscribes to status changes of this topic
*
* @param listener for messages
* @return listener id
* @see org.redisson.api.listener.StatusListener
*/
Mono addListener(StatusListener listener);
/**
* Subscribes to this topic.
* MessageListener.onMessage
is called when any message
* is published on this topic.
*
* @param type of message
* @param type - type of message
* @param listener for messages
* @return locally unique listener id
* @see org.redisson.api.listener.MessageListener
*/
Mono addListener(Class type, MessageListener listener);
/**
* Removes the listener by id
for listening this topic
*
* @param listenerIds - message listener ids
* @return void
*/
Mono removeListener(Integer... listenerIds);
/**
* Removes the listener by instance
for listening this topic
*
* @param listener - message listener
* @return void
*/
Mono removeListener(MessageListener> listener);
/**
* Returns continues stream of published messages.
*
* @param type of message
* @param type - type of message to listen
* @return stream of messages
*/
Flux getMessages(Class type);
/**
* Returns amount of subscribers to this topic across all Redisson instances.
* Each subscriber may have multiple listeners.
*
* @return amount of subscribers
*/
Mono countSubscribers();
/**
* Removes all listeners from this topic
*
* @return void
*/
Mono removeAllListeners();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy