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. Forwarding data downstream and writing it run at different paces. Consequently,
writing may lag behind downstream consumption, and may, by default, proceed in background after
downstream has been completed. If the
com.github.mizosoft.methanol.internal.cache.CacheWritingPublisher.waitForCommit
is true,
downstream isn't completed unless all data is written and the edit is committed. If an error
occurs while writing, the edit is silently discarded.-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionCacheWritingPublisher
(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 waitForCommit) -
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 waitForCommit)
-
-
Method Details
-
subscribe
- Specified by:
subscribe
in interfaceFlow.Publisher<List<ByteBuffer>>
-