java.lang.Object
com.github.mizosoft.methanol.internal.cache.CacheWritingPublisher
- All Implemented Interfaces:
Flow.Publisher<List<ByteBuffer>>
A
Publisher
that writes the body stream into cache while simultaneously forwarding it to
downstream. The publisher prefers writing the whole stream if downstream cancels the subscription
midway transmission. Forwarding downstream items is advanced independently of writing them.
Consequently, writing may lag behind downstream consumption, and may proceed after downstream has
been completed. This affords the downstream not having to unnecessarily wait for the entire body
to be cached. If an error occurs while writing, the edit is silently discarded.-
Nested Class Summary
-
Constructor Summary
ConstructorDescriptionCacheWritingPublisher
(Flow.Publisher<List<ByteBuffer>> upstream, Store.Editor editor, ByteBuffer metadata, Executor executor) CacheWritingPublisher
(Flow.Publisher<List<ByteBuffer>> upstream, Store.Editor editor, ByteBuffer metadata, Executor executor, CacheWritingPublisher.Listener listener) CacheWritingPublisher
(Flow.Publisher<List<ByteBuffer>> upstream, Store.Editor editor, ByteBuffer metadata, Executor executor, CacheWritingPublisher.Listener listener, boolean propagateCancellation) -
Method Summary
Modifier and TypeMethodDescriptionvoid
subscribe
(Flow.Subscriber<? super List<ByteBuffer>> subscriber)
-
Constructor Details
-
CacheWritingPublisher
public CacheWritingPublisher(Flow.Publisher<List<ByteBuffer>> upstream, Store.Editor editor, ByteBuffer metadata, Executor executor) -
CacheWritingPublisher
public CacheWritingPublisher(Flow.Publisher<List<ByteBuffer>> upstream, Store.Editor editor, ByteBuffer metadata, Executor executor, CacheWritingPublisher.Listener listener) -
CacheWritingPublisher
public CacheWritingPublisher(Flow.Publisher<List<ByteBuffer>> upstream, Store.Editor editor, ByteBuffer metadata, Executor executor, CacheWritingPublisher.Listener listener, boolean propagateCancellation)
-
-
Method Details
-
subscribe
- Specified by:
subscribe
in interfaceFlow.Publisher<List<ByteBuffer>>
-