
org.redisson.api.RBlockingDequeAsync 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 org.redisson.api.queue.DequeMoveArgs;
import java.time.Duration;
import java.util.concurrent.BlockingDeque;
import java.util.concurrent.TimeUnit;
/**
* Distributed async implementation of {@link BlockingDeque}
*
* @author Nikita Koksharov
* @param the type of elements held in this collection
*/
public interface RBlockingDequeAsync extends RDequeAsync, RBlockingQueueAsync {
/**
* Retrieves and removes first available head element of any queue in async mode,
* waiting up to the specified wait time if necessary for an element to become available
* in any of defined queues including queue own.
*
* @param queueNames - names of queue
* @param timeout how long to wait before giving up, in units of
* {@code unit}
* @param unit a {@code TimeUnit} determining how to interpret the
* {@code timeout} parameter
* @return the head of this queue, or {@code null} if the
* specified waiting time elapses before an element is available
*/
RFuture pollFirstFromAnyAsync(long timeout, TimeUnit unit, String... queueNames);
/**
* Retrieves and removes first available tail element of any queue in async mode,
* waiting up to the specified wait time if necessary for an element to become available
* in any of defined queues including queue own.
*
* @param queueNames - names of queue
* @param timeout how long to wait before giving up, in units of
* {@code unit}
* @param unit a {@code TimeUnit} determining how to interpret the
* {@code timeout} parameter
* @return the head of this queue, or {@code null} if the
* specified waiting time elapses before an element is available
*/
RFuture pollLastFromAnyAsync(long timeout, TimeUnit unit, String... queueNames);
/**
* Adds value to the head of queue.
*
* @param e value
* @return void
*/
RFuture putFirstAsync(V e);
/**
* Adds value to the tail of queue.
*
* @param e value
* @return void
*/
RFuture putLastAsync(V e);
/**
* Retrieves and removes value at the tail of queue. If necessary waits up to defined timeout
for an element become available.
*
* @param timeout how long to wait before giving up, in units of
* {@code unit}
* @param unit a {@code TimeUnit} determining how to interpret the
* {@code timeout} parameter
* @return the element at the head of this queue, or {@code null} if the
* specified waiting time elapses before an element is available
*/
RFuture pollLastAsync(long timeout, TimeUnit unit);
/**
* Retrieves and removes value at the tail of queue. Waits for an element become available.
*
* @return the tail element of this queue
*/
RFuture takeLastAsync();
/**
* Retrieves and removes value at the head of queue. If necessary waits up to defined timeout
for an element become available.
*
* @param timeout how long to wait before giving up, in units of
* {@code unit}
* @param unit a {@code TimeUnit} determining how to interpret the
* {@code timeout} parameter
* @return the element at the tail of this queue, or {@code null} if the
* specified waiting time elapses before an element is available
*/
RFuture pollFirstAsync(long timeout, TimeUnit unit);
/**
* Retrieves and removes value at the head of queue. Waits for an element become available.
*
* @return the head element of this queue
*/
RFuture takeFirstAsync();
RFuture moveAsync(Duration timeout, DequeMoveArgs args);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy