Skip to content

Commit 22f07cd

Browse files
committed
sse/juc: allow set maxBufferCapacity
1 parent 63028d2 commit 22f07cd

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

retrofit-adapters/sse/juc-flow/src/main/java/retrofit2/adapter/sse/java9/SseJucFlowCallAdapter.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import retrofit2.adapter.sse.internal.EventSourceCallAdapter
3232

3333
internal class SseJucFlowCallAdapter<ID : Any, TYPE : Any, DATA : Any>(
3434
executor: Executor?,
35+
private val maxBufferCapacity: Int,
3536
retrofit: Retrofit,
3637
idType: Type,
3738
typeType: Type,
@@ -55,7 +56,7 @@ internal class SseJucFlowCallAdapter<ID : Any, TYPE : Any, DATA : Any>(
5556
call: Call<ResponseBody>,
5657
): Flow.Publisher<ServerSentEvent<ID, TYPE, DATA>> {
5758
val delegate = delegate.adapt(call)
58-
return object : SubmissionPublisher<ServerSentEvent<ID, TYPE, DATA>>(executor, Flow.defaultBufferSize()) {
59+
return object : SubmissionPublisher<ServerSentEvent<ID, TYPE, DATA>>(executor, maxBufferCapacity) {
5960
override fun subscribe(subscriber: Flow.Subscriber<in ServerSentEvent<ID, TYPE, DATA>>?) {
6061
super.subscribe(subscriber)
6162
delegate.subscribe(object : SseCallback<ID, TYPE, DATA> {

retrofit-adapters/sse/juc-flow/src/main/java/retrofit2/adapter/sse/java9/SseJucFlowCallAdapterFactory.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,14 @@ import retrofit2.http.Streaming
2626

2727
class SseJucFlowCallAdapterFactory private constructor(
2828
private val executor: Executor?,
29+
private val maxBufferCapacity: Int,
2930
) : CallAdapter.Factory() {
3031

3132
companion object {
3233
@JvmStatic
3334
@JvmOverloads
34-
fun create(executor: Executor? = null) = SseJucFlowCallAdapterFactory(executor)
35+
fun create(executor: Executor? = null, maxBufferCapacity: Int = Flow.defaultBufferSize()) =
36+
SseJucFlowCallAdapterFactory(executor, maxBufferCapacity)
3537
}
3638

3739
override fun get(
@@ -72,6 +74,7 @@ class SseJucFlowCallAdapterFactory private constructor(
7274

7375
return SseJucFlowCallAdapter<Any, Any, Any>(
7476
executor,
77+
maxBufferCapacity,
7578
retrofit,
7679
idType,
7780
typeType,

0 commit comments

Comments
 (0)