Class HotRodStore<K,​V>

  • All Implemented Interfaces:
    org.infinispan.persistence.spi.NonBlockingStore<K,​V>

    public class HotRodStore<K,​V>
    extends Object
    implements org.infinispan.persistence.spi.NonBlockingStore<K,​V>
    Variation of RemoteStore configured with a started container-managed RemoteCacheContainer instance. Remote caches are auto-created on the remote server if supported by the protocol. Supports segmentation by using a separate remote cache per segment.
    Author:
    Radoslav Husar, Paul Ferraro
    • Constructor Detail

      • HotRodStore

        public HotRodStore()
    • Method Detail

      • start

        public CompletionStage<Void> start​(org.infinispan.persistence.spi.InitializationContext context)
        Specified by:
        start in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • stop

        public CompletionStage<Void> stop()
        Specified by:
        stop in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • characteristics

        public Set<org.infinispan.persistence.spi.NonBlockingStore.Characteristic> characteristics()
        Specified by:
        characteristics in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • load

        public CompletionStage<org.infinispan.persistence.spi.MarshallableEntry<K,​V>> load​(int segment,
                                                                                                 Object key)
        Specified by:
        load in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • write

        public CompletionStage<Void> write​(int segment,
                                           org.infinispan.persistence.spi.MarshallableEntry<? extends K,​? extends V> entry)
        Specified by:
        write in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • delete

        public CompletionStage<Boolean> delete​(int segment,
                                               Object key)
        Specified by:
        delete in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • batch

        public CompletionStage<Void> batch​(int publisherCount,
                                           org.reactivestreams.Publisher<org.infinispan.persistence.spi.NonBlockingStore.SegmentedPublisher<Object>> removePublisher,
                                           org.reactivestreams.Publisher<org.infinispan.persistence.spi.NonBlockingStore.SegmentedPublisher<org.infinispan.persistence.spi.MarshallableEntry<K,​V>>> writePublisher)
        Specified by:
        batch in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • publishKeys

        public io.reactivex.rxjava3.core.Flowable<K> publishKeys​(org.infinispan.commons.util.IntSet segments,
                                                                 Predicate<? super K> filter)
        Specified by:
        publishKeys in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • publishEntries

        public org.reactivestreams.Publisher<org.infinispan.persistence.spi.MarshallableEntry<K,​V>> publishEntries​(org.infinispan.commons.util.IntSet segments,
                                                                                                                         Predicate<? super K> filter,
                                                                                                                         boolean includeValues)
        Specified by:
        publishEntries in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • clear

        public CompletionStage<Void> clear()
        Specified by:
        clear in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • containsKey

        public CompletionStage<Boolean> containsKey​(int segment,
                                                    Object key)
        Specified by:
        containsKey in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • isAvailable

        public CompletionStage<Boolean> isAvailable()
        Specified by:
        isAvailable in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • size

        public CompletionStage<Long> size​(org.infinispan.commons.util.IntSet segments)
        Specified by:
        size in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • addSegments

        public CompletionStage<Void> addSegments​(org.infinispan.commons.util.IntSet segments)
        Specified by:
        addSegments in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • removeSegments

        public CompletionStage<Void> removeSegments​(org.infinispan.commons.util.IntSet segments)
        Specified by:
        removeSegments in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>
      • purgeExpired

        public org.reactivestreams.Publisher<org.infinispan.persistence.spi.MarshallableEntry<K,​V>> purgeExpired()
        Specified by:
        purgeExpired in interface org.infinispan.persistence.spi.NonBlockingStore<K,​V>