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

Reintroduce gRPC interceptors

    XMLWordPrintable

Details

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

    Description

      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
      1. 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.

      Suggested interface:
      <TBD>

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              semlanik Alexey Edelev
              semlanik Alexey Edelev
              Vladimir Minenko Vladimir Minenko
              Alex Blasche Alex Blasche
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes