Class InMemoryMapBlobStore

    • Constructor Detail

      • InMemoryMapBlobStore

        public InMemoryMapBlobStore​(TimestampGenerator timestampGenerator)
    • Method Detail

      • put

        public long put​(String key,
                        byte[] value,
                        String context,
                        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 Optional<byte[]> get​(String key,
                                    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 Optional<Optional<byte[]>> getIfStale​(String key,
                                                     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 OptionalLong getLastUpdated​(String key,
                                           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 String getName()
        Specified by:
        getName in interface KeyValueStore<byte[]>
        Returns:
        the name of the backing implementation
      • enumerateContext

        public Map<String,​byte[]> enumerateContext​(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​(String key,
                           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)