class MeteredSessionStore extends WrappedStateStore<SessionStore<Bytes, byte[]>, Windowed<K>, V> implements SessionStore<K, V> {

    @Override
    public KeyValueIterator<Windowed<K>, V> fetch(final K key) {
        Objects.requireNonNull(key, "key cannot be null");
        return new MeteredWindowedKeyValueIterator<>(
            wrapped().fetch(keyBytes(key)),
            fetchSensor,
            streamsMetrics,
            serdes,
            time);
    }

      MeteredSessionStore(final SessionStore<Bytes, byte[]> inner,
                        final String metricsScope,
                        final Serde<K> keySerde,
                        final Serde<V> valueSerde,
                        final Time time);

}