Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-128338

Reintroduce gRPC interceptors

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: P2: Important P2: Important
    • 6.10
    • 6.9
    • GRPC
    • None

      We need to reintroduce the interceptors API that was removed during the unTP polishing.

      I suggest to create a simpler interface then we had before. Instead of building the interceptor call chain for user, let users do this, since this will not limit the logic by our understanding how interceptors should behave.

      The interface will have two entrypoints that will be executed in order:

      1. Interceptor function/functor/QMetaCall in QGrpcChannelOptions
      2. Interceptor function/functor/QMetaCall in QGrpcCallOptions

      Interceptors should be executed both ways round, or one way round(depending on additional flag is set in options.

      The over all interceptor call sequence:

      → client call → call interceptor → channel interceptor → channel call →
                                                                                   ↓
                                                                             server response
                                                                                   ↓
       
      ← client response ← call interceptor ← channel interceptor ← channel handling ← ```
      Interceptors must be executed synchronously(with the main call/response chain) otherwise this will cause the data loss issues and unordered call execution.
      
      <p></p>
      
      Suggested interface:
      <TBD

        For Gerrit Dashboard: QTBUG-128338
        # Subject Branch Project Status CR V

            dennisoberst Dennis Oberst
            semlanik Alexey Edelev
            Vladimir Minenko Vladimir Minenko
            Alex Blasche Alex Blasche
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:

                There is 1 open Gerrit change