Class InMemoryMapBlobStore

    • Constructor Detail

      • InMemoryMapBlobStore

        public InMemoryMapBlobStore​(TimestampGenerator timestampGenerator)
    • Method Detail

      • put

        public long put​(java.lang.String key,
                        byte[] value,
                        java.lang.String context,
                        java.lang.Integer ttlInSeconds)
        Description copied from interface: KeyValueStore
        Put a value with a suggested time-to-live after which the value should be expired and removed from the store.

        Records are expired on a best effort basis and depending on the implementation it is possible to get an expired record.

        Specified by:
        put in interface KeyValueStore<byte[]>
        context - a context used to differentiate between keys with the same name (forms a compound key)
        ttlInSeconds - the time to live in seconds for this key or no ttl if null
        Returns:
        the timestamp the value was persisted with
      • get

        public java.util.Optional<byte[]> get​(java.lang.String key,
                                              java.lang.String context)
        Specified by:
        get in interface KeyValueStore<byte[]>
        context - a context used to differentiate between keys with the same name (forms a compound key)
        Returns:
        an optional containing the value if present or empty if the key did not exist
      • getIfStale

        public java.util.Optional<java.util.Optional<byte[]>> getIfStale​(java.lang.String key,
                                                                         java.lang.String context,
                                                                         long timestamp)
        Specified by:
        getIfStale in interface KeyValueStore<byte[]>
        context - a context used to differentiate between keys with the same name (forms a compound key)
        timestamp - the timestamp of the last known state such that if an record with a more recent timestamp is found the provided timestamp will be considered stale and the new record will be returned
        Returns:
        an optional that will be empty if the key was not found or will contain another optional that will be empty if not stale or contain the value if stale
      • getLastUpdated

        public java.util.OptionalLong getLastUpdated​(java.lang.String key,
                                                     java.lang.String context)
        Specified by:
        getLastUpdated in interface KeyValueStore<byte[]>
        context - a context used to differentiate between keys with the same name (forms a compound key)
        Returns:
        an optional containing the timestamp the key's value was last updated or empty if the key did not exist
      • getName

        public java.lang.String getName()
        Specified by:
        getName in interface KeyValueStore<byte[]>
        Returns:
        the name of the backing implementation
      • enumerateContext

        public java.util.Map<java.lang.String,​byte[]> enumerateContext​(java.lang.String context)
        Specified by:
        enumerateContext in interface KeyValueStore<byte[]>
        Parameters:
        context - a context used to differentiate between keys with the same name (forms a compound key)
        Returns:
        a map of all the records matching the given context where the map's key is the record's key and the map's value is the records value
      • delete

        public void delete​(java.lang.String key,
                           java.lang.String context)
        Specified by:
        delete in interface KeyValueStore<byte[]>
        context - a context used to differentiate between keys with the same name (forms a compound key)