Class CompletedOperationCache<K extends OperationKey,​R extends Serializable>

  • All Implemented Interfaces:
    AutoCloseable, AutoCloseableAsync

    @ThreadSafe
    public class CompletedOperationCache<K extends OperationKey,​R extends Serializable>
    extends Object
    implements AutoCloseableAsync
    Cache to manage ongoing operations.

    The cache allows to register ongoing operations by calling #registerOngoingOperation(K, CompletableFuture), where the CompletableFuture contains the operation result. Completed operations will be removed from the cache automatically after a fixed timeout.

    • Constructor Detail

      • CompletedOperationCache

        public CompletedOperationCache​(Duration cacheDuration)
    • Method Detail

      • registerOngoingOperation

        public void registerOngoingOperation​(K operationKey,
                                             CompletableFuture<R> operationResultFuture)
        Registers an ongoing operation with the cache.
        Parameters:
        operationResultFuture - A future containing the operation result.
        Throws:
        IllegalStateException - if the cache is already shutting down
      • containsOperation

        public boolean containsOperation​(K operationKey)
        Returns whether this cache contains an operation under the given operation key.
      • get

        public Optional<OperationResult<R>> get​(K operationKey)
        Returns an optional containing the OperationResult for the specified key, or an empty optional if no operation is registered under the key.