Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.redisson.api.RStreamAsync Maven / Gradle / Ivy
Go to download
Easy Redis Java client and Real-Time Data Platform. Valkey compatible. Sync/Async/RxJava3/Reactive API. Client side caching. Over 50 Redis based Java objects and services: JCache API, Apache Tomcat, Hibernate, Spring, Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Scheduler, RPC
/**
* Copyright (c) 2013-2020 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 java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* Async interface for Redis Stream object.
*
* Requires Redis 5.0.0 and higher.
*
* @author Nikita Koksharov
*
* @param key type
* @param value type
*/
public interface RStreamAsync extends RExpirableAsync {
/**
* Creates consumer group by name.
*
* @param groupName - name of group
* @return void
*/
RFuture createGroupAsync(String groupName);
/**
* Creates consumer group by name and stream id.
* Only new messages after defined stream id
will be available for consumers of this group.
*
* {@link StreamMessageId#NEWEST} is used for messages arrived since the moment of group creating
*
* @param groupName - name of group
* @param id - stream id
* @return void
*/
RFuture createGroupAsync(String groupName, StreamMessageId id);
/**
* Removes group by name.
*
* @param groupName - name of group
* @return void
*/
RFuture removeGroupAsync(String groupName);
/**
* Creates consumer of the group by name.
*
* Requires Redis 6.2.0 and higher.
*
* @param groupName - name of group
* @param consumerName - name of consumer
*/
RFuture createConsumerAsync(String groupName, String consumerName);
/**
* Removes consumer of the group by name.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @return number of pending messages owned by consumer
*/
RFuture removeConsumerAsync(String groupName, String consumerName);
/**
* Updates next message id delivered to consumers.
*
* @param groupName - name of group
* @param id - Stream Message ID
* @return void
*/
RFuture updateGroupMessageIdAsync(String groupName, StreamMessageId id);
/**
* Marks pending messages by group name and stream ids
as correctly processed.
*
* @param groupName - name of group
* @param ids - stream ids
* @return marked messages amount
*/
RFuture ackAsync(String groupName, StreamMessageId... ids);
/**
* Returns common info about pending messages by group name.
*
* @param groupName - name of group
* @return result object
*/
RFuture getPendingInfoAsync(String groupName);
/*
* Use #getPendingInfoAsync method
*/
@Deprecated
RFuture listPendingAsync(String groupName);
/**
* Returns list of common info about pending messages by group name.
* Limited by minimum idle time, messages count, start and end Stream Message IDs.
*
* {@link StreamMessageId#MAX} is used as max Stream Message ID
* {@link StreamMessageId#MIN} is used as min Stream Message ID
*
* Requires Redis 6.2.0 and higher.
*
* @see #pendingRangeAsync
*
* @param groupName - name of group
* @param startId - start Stream Message ID
* @param idleTime - minimum idle time of messages
* @param idleTimeUnit - idle time unit
* @param endId - end Stream Message ID
* @param count - amount of messages
* @return list
*/
RFuture> listPendingAsync(String groupName, StreamMessageId startId, StreamMessageId endId, long idleTime, TimeUnit idleTimeUnit, int count);
/**
* Returns list of common info about pending messages by group and consumer name.
* Limited by minimum idle time, messages count, start and end Stream Message IDs.
*
* {@link StreamMessageId#MAX} is used as max Stream Message ID
* {@link StreamMessageId#MIN} is used as min Stream Message ID
*
* Requires Redis 6.2.0 and higher.
*
* @see #pendingRangeAsync
*
* @param consumerName - name of consumer
* @param groupName - name of group
* @param startId - start Stream Message ID
* @param endId - end Stream Message ID
* @param idleTime - minimum idle time of messages
* @param idleTimeUnit - idle time unit
* @param count - amount of messages
* @return list
*/
RFuture> listPendingAsync(String groupName, String consumerName, StreamMessageId startId, StreamMessageId endId, long idleTime, TimeUnit idleTimeUnit, int count);
/**
* Returns list of common info about pending messages by group name.
* Limited by start Stream Message ID and end Stream Message ID and count.
*
* {@link StreamMessageId#MAX} is used as max Stream Message ID
* {@link StreamMessageId#MIN} is used as min Stream Message ID
*
* @see #pendingRangeAsync
*
* @param groupName - name of group
* @param startId - start Stream Message ID
* @param endId - end Stream Message ID
* @param count - amount of messages
* @return list
*/
RFuture> listPendingAsync(String groupName, StreamMessageId startId, StreamMessageId endId, int count);
/**
* Returns list of common info about pending messages by group and consumer name.
* Limited by start Stream Message ID and end Stream Message ID and count.
*
* {@link StreamMessageId#MAX} is used as max Stream Message ID
* {@link StreamMessageId#MIN} is used as min Stream Message ID
*
* @see #pendingRangeAsync
*
* @param consumerName - name of consumer
* @param groupName - name of group
* @param startId - start Stream Message ID
* @param endId - end Stream Message ID
* @param count - amount of messages
* @return list
*/
RFuture> listPendingAsync(String groupName, String consumerName, StreamMessageId startId, StreamMessageId endId, int count);
/**
* Returns stream data of pending messages by group name.
* Limited by start Stream Message ID and end Stream Message ID and count.
*
* {@link StreamMessageId#MAX} is used as max Stream Message ID
* {@link StreamMessageId#MIN} is used as min Stream Message ID
*
* @see #listPendingAsync
*
* @param groupName - name of group
* @param startId - start Stream Message ID
* @param endId - end Stream Message ID
* @param count - amount of messages
* @return map
*/
RFuture>> pendingRangeAsync(String groupName, StreamMessageId startId, StreamMessageId endId, int count);
/**
* Returns stream data of pending messages by group and customer name.
* Limited by start Stream Message ID and end Stream Message ID and count.
*
* {@link StreamMessageId#MAX} is used as max Stream Message ID
* {@link StreamMessageId#MIN} is used as min Stream Message ID
*
* @see #listPendingAsync
*
* @param consumerName - name of consumer
* @param groupName - name of group
* @param startId - start Stream Message ID
* @param endId - end Stream Message ID
* @param count - amount of messages
* @return map
*/
RFuture>> pendingRangeAsync(String groupName, String consumerName, StreamMessageId startId, StreamMessageId endId, int count);
/**
* Returns stream data of pending messages by group name.
* Limited by minimum idle time, messages count, start and end Stream Message IDs.
*
* {@link StreamMessageId#MAX} is used as max Stream Message ID
* {@link StreamMessageId#MIN} is used as min Stream Message ID
*
* Requires Redis 6.2.0 and higher.
*
* @see #listPendingAsync
*
* @param groupName - name of group
* @param startId - start Stream Message ID
* @param endId - end Stream Message ID
* @param idleTime - minimum idle time of messages
* @param idleTimeUnit - idle time unit
* @param count - amount of messages
* @return map
*/
RFuture>> pendingRangeAsync(String groupName, StreamMessageId startId, StreamMessageId endId, long idleTime, TimeUnit idleTimeUnit, int count);
/**
* Returns stream data of pending messages by group and customer name.
* Limited by minimum idle time, messages count, start and end Stream Message IDs.
*
* {@link StreamMessageId#MAX} is used as max Stream Message ID
* {@link StreamMessageId#MIN} is used as min Stream Message ID
*
* Requires Redis 6.2.0 and higher.
*
* @see #listPendingAsync
*
* @param consumerName - name of consumer
* @param groupName - name of group
* @param startId - start Stream Message ID
* @param endId - end Stream Message ID
* @param idleTime - minimum idle time of messages
* @param idleTimeUnit - idle time unit
* @param count - amount of messages
* @return map
*/
RFuture>> pendingRangeAsync(String groupName, String consumerName, StreamMessageId startId, StreamMessageId endId, long idleTime, TimeUnit idleTimeUnit, int count);
/**
* Transfers ownership of pending messages by id to a new consumer
* by name if idle time of messages and startId are greater than defined value.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param idleTime - minimum idle time of messages
* @param idleTimeUnit - idle time unit
* @param startId - start Stream Message ID
* @return stream data mapped by Stream ID
*/
RFuture> autoClaimAsync(String groupName, String consumerName, long idleTime, TimeUnit idleTimeUnit, StreamMessageId startId, int count);
/**
* Transfers ownership of pending messages by id to a new consumer
* by name if idle time of messages and startId are greater than defined value.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param idleTime - minimum idle time of messages
* @param idleTimeUnit - idle time unit
* @param startId - start Stream Message ID
* @return list of Stream Message IDs
*/
RFuture fastAutoClaimAsync(String groupName, String consumerName, long idleTime, TimeUnit idleTimeUnit, StreamMessageId startId, int count);
/**
* Transfers ownership of pending messages by id to a new consumer
* by name if idle time of messages is greater than defined value.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param idleTime - minimum idle time of messages
* @param idleTimeUnit - idle time unit
* @param ids - Stream Message IDs
* @return stream data mapped by Stream ID
*/
RFuture>> claimAsync(String groupName, String consumerName, long idleTime, TimeUnit idleTimeUnit, StreamMessageId... ids);
/**
* Transfers ownership of pending messages by id to a new consumer
* by name if idle time of messages is greater than defined value.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param idleTime - minimum idle time of messages
* @param idleTimeUnit - idle time unit
* @param ids - Stream Message IDs
* @return list of Stream Message IDs
*/
RFuture> fastClaimAsync(String groupName, String consumerName, long idleTime, TimeUnit idleTimeUnit, StreamMessageId... ids);
/**
* Read stream data from groupName
by consumerName
and specified collection of Stream IDs.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param ids - collection of Stream IDs
* @return stream data mapped by Stream ID
*/
RFuture>> readGroupAsync(String groupName, String consumerName, StreamMessageId... ids);
/**
* Read stream data from groupName
by consumerName
and specified collection of Stream IDs.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param count - stream data size limit
* @param ids - collection of Stream IDs
* @return stream data mapped by Stream ID
*/
RFuture>> readGroupAsync(String groupName, String consumerName, int count, StreamMessageId... ids);
/**
* Read stream data from groupName
by consumerName
and specified collection of Stream IDs.
* Wait for stream data availability for specified timeout
interval.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param ids - collection of Stream IDs
* @return stream data mapped by Stream ID
*/
RFuture>> readGroupAsync(String groupName, String consumerName, long timeout, TimeUnit unit, StreamMessageId... ids);
/**
* Read stream data from groupName
by consumerName
and specified collection of Stream IDs.
* Wait for stream data availability for specified timeout
interval.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param count - stream data size limit
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param ids - collection of Stream IDs
* @return stream data mapped by Stream ID
*/
RFuture>> readGroupAsync(String groupName, String consumerName, int count, long timeout, TimeUnit unit, StreamMessageId... ids);
/**
* Read stream data from groupName
by consumerName
, starting by specified message ids for this and other streams.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param id - starting message id for this stream
* @param nameToId - Stream Message ID mapped by stream name
* @return stream data mapped by key and Stream Message ID
*/
RFuture>>> readGroupAsync(String groupName, String consumerName, StreamMessageId id, Map nameToId);
/**
* Read stream data from groupName
by consumerName
, starting by specified message ids for this and other streams.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param count - stream data size limit
* @param id - starting message id for this stream
* @param nameToId - Stream Message ID mapped by stream name
* @return stream data mapped by key and Stream Message ID
*/
RFuture>>> readGroupAsync(String groupName, String consumerName, int count, StreamMessageId id, Map nameToId);
/**
* Read stream data from groupName
by consumerName
, starting by specified message ids for this and other streams.
* Waits for the first stream data availability for specified timeout
interval.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param count - stream data size limit
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param id - starting message id for this stream
* @param key2 - name of second stream
* @param id2 - starting message id for second stream
* @return stream data mapped by key and Stream Message ID
*/
RFuture>>> readGroupAsync(String groupName, String consumerName, int count, long timeout, TimeUnit unit, StreamMessageId id, String key2, StreamMessageId id2);
/**
* Read stream data from groupName
by consumerName
, starting by specified message ids for this and other streams.
* Waits for the first stream data availability for specified timeout
interval.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param count - stream data size limit
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param id - starting message id for this stream
* @param key2 - name of second stream
* @param id2 - starting message id for second stream
* @param key3 - name of third stream
* @param id3 - starting message id for third stream
* @return stream data mapped by key and Stream Message ID
*/
RFuture>>> readGroupAsync(String groupName, String consumerName, int count, long timeout, TimeUnit unit, StreamMessageId id,
String key2, StreamMessageId id2, String key3, StreamMessageId id3);
/**
* Read stream data from groupName
by consumerName
, starting by specified message ids for this and other streams.
* Waits for the first stream data availability for specified timeout
interval.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param id - starting message id for this stream
* @param nameToId - Stream Message ID mapped by stream name
* @return stream data mapped by key and Stream Message ID
*/
RFuture>>> readGroupAsync(String groupName, String consumerName, long timeout, TimeUnit unit, StreamMessageId id, Map nameToId);
/**
* Read stream data from groupName
by consumerName
, starting by specified message ids for this and other streams.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param id - starting message id for this stream
* @param key2 - name of second stream
* @param id2 - starting message id for second stream
* @return stream data mapped by key and Stream Message ID
*/
RFuture>>> readGroupAsync(String groupName, String consumerName, StreamMessageId id, String key2, StreamMessageId id2);
/**
* Read stream data from groupName
by consumerName
, starting by specified message ids for this and other streams.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param id - starting message id for this stream
* @param key2 - name of second stream
* @param id2 - starting message id for second stream
* @param key3 - name of third stream
* @param id3 - starting message id for third stream
* @return stream data mapped by key and Stream Message ID
*/
RFuture>>> readGroupAsync(String groupName, String consumerName, StreamMessageId id, String key2, StreamMessageId id2, String key3,
StreamMessageId id3);
/**
* Read stream data from groupName
by consumerName
, starting by specified message ids for this and other streams.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param count - stream data size limit
* @param id - starting message id for this stream
* @param key2 - name of second stream
* @param id2 - starting message id for second stream
* @return stream data mapped by key and Stream Message ID
*/
RFuture>>> readGroupAsync(String groupName, String consumerName, int count, StreamMessageId id, String key2, StreamMessageId id2);
/**
* Read stream data from groupName
by consumerName
, starting by specified message ids for this and other streams.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param count - stream data size limit
* @param id - starting message id for this stream
* @param key2 - name of second stream
* @param id2 - starting message id for second stream
* @param key3 - name of third stream
* @param id3 - starting message id for third stream
* @return stream data mapped by key and Stream Message ID
*/
RFuture>>> readGroupAsync(String groupName, String consumerName, int count, StreamMessageId id, String key2, StreamMessageId id2,
String key3, StreamMessageId id3);
/**
* Read stream data from groupName
by consumerName
, starting by specified message ids for this and other streams.
* Waits for the first stream data availability for specified timeout
interval.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param id - starting message id for this stream
* @param key2 - name of second stream
* @param id2 - starting message id for second stream
* @return stream data mapped by key and Stream Message ID
*/
RFuture>>> readGroupAsync(String groupName, String consumerName, long timeout, TimeUnit unit, StreamMessageId id,
String key2, StreamMessageId id2);
/**
* Read stream data from groupName
by consumerName
, starting by specified message ids for this and other streams.
* Waits for the first stream data availability for specified timeout
interval.
*
* @param groupName - name of group
* @param consumerName - name of consumer
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param id - starting message id for this stream
* @param key2 - name of second stream
* @param id2 - starting message id for second stream
* @param key3 - name of third stream
* @param id3 - starting message id for third stream
* @return stream data mapped by key and Stream Message ID
*/
RFuture>>> readGroupAsync(String groupName, String consumerName, long timeout, TimeUnit unit, StreamMessageId id,
String key2, StreamMessageId id2, String key3, StreamMessageId id3);
/**
* Returns number of entries in stream
*
* @return size of stream
*/
RFuture sizeAsync();
/**
* Appends a new entry and returns generated Stream ID
*
* @param key - key of entry
* @param value - value of entry
* @return Stream ID
*/
RFuture addAsync(K key, V value);
/**
* Appends a new entry by specified Stream ID
*
* @param id - Stream ID
* @param key - key of entry
* @param value - value of entry
* @return void
*/
RFuture addAsync(StreamMessageId id, K key, V value);
/**
* Appends a new entry and returns generated Stream ID.
* Trims stream to a specified trimLen
size.
* If trimStrict
is false
then trims to few tens of entries more than specified length to trim.
*
* @param key - key of entry
* @param value - value of entry
* @param trimLen - length to trim
* @param trimStrict - if false
then trims to few tens of entries more than specified length to trim
* @return Stream ID
*/
RFuture addAsync(K key, V value, int trimLen, boolean trimStrict);
/**
* Appends a new entry by specified Stream ID.
* Trims stream to a specified trimLen
size.
* If trimStrict
is false
then trims to few tens of entries more than specified length to trim.
*
* @param id - Stream ID
* @param key - key of entry
* @param value - value of entry
* @param trimLen - length to trim
* @param trimStrict - if false
then trims to few tens of entries more than specified length to trim
* @return void
*/
RFuture addAsync(StreamMessageId id, K key, V value, int trimLen, boolean trimStrict);
/**
* Appends new entries and returns generated Stream ID
*
* @param entries - entries to add
* @return Stream ID
*/
RFuture addAllAsync(Map entries);
/**
* Appends new entries by specified Stream ID
*
* @param id - Stream ID
* @param entries - entries to add
* @return void
*/
RFuture addAllAsync(StreamMessageId id, Map entries);
/**
* Appends new entries and returns generated Stream ID.
* Trims stream to a specified trimLen
size.
* If trimStrict
is false
then trims to few tens of entries more than specified length to trim.
*
* @param entries - entries to add
* @param trimLen - length to trim
* @param trimStrict - if false
then trims to few tens of entries more than specified length to trim
* @return Stream ID
*/
RFuture addAllAsync(Map entries, int trimLen, boolean trimStrict);
/**
* Appends new entries by specified Stream ID.
* Trims stream to a specified trimLen
size.
* If trimStrict
is false
then trims to few tens of entries more than specified length to trim.
*
* @param id - Stream ID
* @param entries - entries to add
* @param trimLen - length to trim
* @param trimStrict - if false
then trims to few tens of entries more than specified length to trim
* @return void
*/
RFuture addAllAsync(StreamMessageId id, Map entries, int trimLen, boolean trimStrict);
/**
* Read stream data by specified collection of Stream IDs.
*
* @param ids - collection of Stream IDs
* @return stream data mapped by Stream ID
*/
RFuture>> readAsync(StreamMessageId... ids);
/**
* Read stream data by specified collection of Stream IDs.
*
* @param count - stream data size limit
* @param ids - collection of Stream IDs
* @return stream data mapped by Stream ID
*/
RFuture>> readAsync(int count, StreamMessageId... ids);
/**
* Read stream data by specified collection of Stream IDs.
* Wait for stream data availability for specified timeout
interval.
*
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param ids - collection of Stream IDs
* @return stream data mapped by Stream ID
*/
RFuture>> readAsync(long timeout, TimeUnit unit, StreamMessageId... ids);
/**
* Read stream data by specified collection of Stream IDs.
* Wait for stream data availability for specified timeout
interval.
*
* @param count - stream data size limit
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param ids - collection of Stream IDs
* @return stream data mapped by Stream ID
*/
RFuture>> readAsync(int count, long timeout, TimeUnit unit, StreamMessageId... ids);
/**
* Read stream data by specified stream name including this stream.
*
* @param id - id of this stream
* @param name2 - name of second stream
* @param id2 - id of second stream
* @return stream data mapped by key and Stream ID
*/
RFuture>>> readAsync(StreamMessageId id, String name2, StreamMessageId id2);
/**
* Read stream data by specified stream names including this stream.
*
* @param id - id of this stream
* @param name2 - name of second stream
* @param id2 - id of second stream
* @param name3 - name of third stream
* @param id3 - id of third stream
* @return stream data mapped by key and Stream ID
*/
RFuture>>> readAsync(StreamMessageId id, String name2, StreamMessageId id2, String name3, StreamMessageId id3);
/**
* Read stream data by specified stream id mapped by name including this stream.
*
* @param id - id of this stream
* @param nameToId - stream id mapped by name
* @return stream data mapped by key and Stream ID
*/
RFuture>>> readAsync(StreamMessageId id, Map nameToId);
/**
* Read stream data by specified stream name including this stream.
*
* @param count - stream data size limit
* @param id - id of this stream
* @param name2 - name of second stream
* @param id2 - id of second stream
* @return stream data mapped by key and Stream ID
*/
RFuture>>> readAsync(int count, StreamMessageId id, String name2, StreamMessageId id2);
/**
* Read stream data by specified stream names including this stream.
*
* @param count - stream data size limit
* @param id - id of this stream
* @param name2 - name of second stream
* @param id2 - id of second stream
* @param name3 - name of third stream
* @param id3 - id of third stream
* @return stream data mapped by key and Stream ID
*/
RFuture>>> readAsync(int count, StreamMessageId id, String name2, StreamMessageId id2, String name3, StreamMessageId id3);
/**
* Read stream data by specified stream id mapped by name including this stream.
*
* @param count - stream data size limit
* @param id - id of this stream
* @param nameToId - stream id mapped by name
* @return stream data mapped by key and Stream ID
*/
RFuture>>> readAsync(int count, StreamMessageId id, Map nameToId);
/**
* Read stream data by specified stream name including this stream.
* Wait for the first stream data availability for specified timeout
interval.
*
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param id - id of this stream
* @param name2 - name of second stream
* @param id2 - id of second stream
* @return stream data mapped by key and Stream ID
*/
RFuture>>> readAsync(long timeout, TimeUnit unit, StreamMessageId id, String name2, StreamMessageId id2);
/**
* Read stream data by specified stream names including this stream.
* Wait for the first stream data availability for specified timeout
interval.
*
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param id - id of this stream
* @param name2 - name of second stream
* @param id2 - id of second stream
* @param name3 - name of third stream
* @param id3 - id of third stream
* @return stream data mapped by key and Stream ID
*/
RFuture>>> readAsync(long timeout, TimeUnit unit, StreamMessageId id, String name2, StreamMessageId id2, String name3, StreamMessageId id3);
/**
* Read stream data by specified stream id mapped by name including this stream.
* Wait for the first stream data availability for specified timeout
interval.
*
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param id - id of this stream
* @param nameToId - stream id mapped by name
* @return stream data mapped by key and Stream ID
*/
RFuture>>> readAsync(long timeout, TimeUnit unit, StreamMessageId id, Map nameToId);
/**
* Read stream data by specified stream name including this stream.
* Wait for the first stream data availability for specified timeout
interval.
*
* @param count - stream data size limit
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param id - id of this stream
* @param name2 - name of second stream
* @param id2 - id of second stream
* @return stream data mapped by key and Stream ID
*/
RFuture>>> readAsync(int count, long timeout, TimeUnit unit, StreamMessageId id, String name2, StreamMessageId id2);
/**
* Read stream data by specified stream names including this stream.
* Wait for the first stream data availability for specified timeout
interval.
*
* @param count - stream data size limit
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param id - id of this stream
* @param name2 - name of second stream
* @param id2 - id of second stream
* @param name3 - name of third stream
* @param id3 - id of third stream
* @return stream data mapped by key and Stream ID
*/
RFuture>>> readAsync(int count, long timeout, TimeUnit unit, StreamMessageId id, String name2, StreamMessageId id2, String name3, StreamMessageId id3);
/**
* Read stream data by specified stream id mapped by name including this stream.
* Wait for the first stream data availability for specified timeout
interval.
*
* @param count - stream data size limit
* @param timeout - time interval to wait for stream data availability
* @param unit - time interval unit
* @param id - id of this stream
* @param nameToId - stream id mapped by name
* @return stream data mapped by key and Stream ID
*/
RFuture>>> readAsync(int count, long timeout, TimeUnit unit, StreamMessageId id, Map nameToId);
/**
* Returns stream data in range by specified start Stream ID (included) and end Stream ID (included).
*
* @param startId - start Stream ID
* @param endId - end Stream ID
* @return stream data mapped by Stream ID
*/
RFuture>> rangeAsync(StreamMessageId startId, StreamMessageId endId);
/**
* Returns stream data in range by specified start Stream ID (included) and end Stream ID (included).
*
* @param count - stream data size limit
* @param startId - start Stream ID
* @param endId - end Stream ID
* @return stream data mapped by Stream ID
*/
RFuture>> rangeAsync(int count, StreamMessageId startId, StreamMessageId endId);
/**
* Returns stream data in reverse order in range by specified start Stream ID (included) and end Stream ID (included).
*
* @param startId - start Stream ID
* @param endId - end Stream ID
* @return stream data mapped by Stream ID
*/
RFuture>> rangeReversedAsync(StreamMessageId startId, StreamMessageId endId);
/**
* Returns stream data in reverse order in range by specified start Stream ID (included) and end Stream ID (included).
*
* @param count - stream data size limit
* @param startId - start Stream ID
* @param endId - end Stream ID
* @return stream data mapped by Stream ID
*/
RFuture>> rangeReversedAsync(int count, StreamMessageId startId, StreamMessageId endId);
/**
* Removes messages by id.
*
* @param ids - id of messages to remove
* @return deleted messages amount
*/
RFuture removeAsync(StreamMessageId... ids);
/**
* Trims stream to specified size
*
* @param size - new size of stream
* @return number of deleted messages
*/
RFuture trimAsync(int size);
/**
* Trims stream to few tens of entries more than specified length to trim.
*
* @param size - new size of stream
* @return number of deleted messages
*/
RFuture trimNonStrictAsync(int size);
/**
* Returns information about this stream.
*
* @return info object
*/
RFuture> getInfoAsync();
/**
* Returns list of objects with information about groups belonging to this stream.
*
* @return list of info objects
*/
RFuture> listGroupsAsync();
/**
* Returns list of objects with information about group customers for specified groupName
.
*
* @param groupName - name of group
* @return list of info objects
*/
RFuture> listConsumersAsync(String groupName);
}