marcoferrer / kroto-plus

gRPC Kotlin Coroutines, Protobuf DSL, Scripting for Protoc
Apache License 2.0
493 stars 28 forks source link

Flow based server streaming client call #101

Closed marcoferrer closed 4 years ago

marcoferrer commented 4 years ago

This PR refactors the implementation for server streaming client calls.

The internal machinery has been updated to leverage Kotlin Flows and the backpressure logic has been drastically simplified. This is the first of many changes to come that are aimed at simplifying and improving performance of the coroutines support library.

codecov[bot] commented 4 years ago

Codecov Report

Merging #101 into master will increase coverage by 0.03%. The diff coverage is 93.87%.

Impacted file tree graph

@@             Coverage Diff              @@
##             master     #101      +/-   ##
============================================
+ Coverage      87.5%   87.53%   +0.03%     
- Complexity       19       21       +2     
============================================
  Files            15       16       +1     
  Lines           344      369      +25     
  Branches         47       50       +3     
============================================
+ Hits            301      323      +22     
  Misses           26       26              
- Partials         17       20       +3
Impacted Files Coverage Δ Complexity Δ
...us/coroutines/client/ClientStreamingCallChannel.kt 81.81% <ø> (ø) 0 <0> (ø) :arrow_down:
...ithub/marcoferrer/krotoplus/coroutines/RpcUtils.kt 92.3% <ø> (ø) 0 <0> (ø) :arrow_down:
...rotoplus/coroutines/client/ClientCallDecorators.kt 100% <100%> (ø) 0 <0> (?)
...oroutines/client/ResponseObserverChannelAdapter.kt 90% <90%> (ø) 11 <11> (?)
...oferrer/krotoplus/coroutines/client/ClientCalls.kt 89.09% <96.15%> (+1.91%) 0 <0> (ø) :arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 93f9fae...2054d38. Read the comment docs.