Vijay Pai
847b0155d9
Promise to call OnStarted and forbid Start* until after OnStarted
2019-03-27 16:30:07 -07:00
Karthik Ravi Shankar
dc3a715be4
Fix clang format code errors.
2019-03-27 14:33:58 -07:00
Karthik Ravi Shankar
c399349dad
Merge branch 'master' into grpc_namespace_server
2019-03-27 14:32:10 -07:00
Karthik Ravi Shankar
7068560b2b
Merge branch 'master' into grpc_namespace_server_credentials
2019-03-27 14:18:42 -07:00
Karthik Ravi Shankar
0f078898d5
Merge branch 'master' into revert-18502-revert-18242-grpc_namespace_serverbuilder
2019-03-27 12:50:49 -07:00
Vijay Pai
abb991be25
Further clarify some APIs by removing their comments from internal::
2019-03-27 09:46:08 -07:00
Vijay Pai
9169159f30
Comments for all callback API methods
2019-03-26 23:33:23 -07:00
Karthik Ravi Shankar
996da58667
Revert "Revert "Moving ::grpc::ServerBuilder to ::grpc_impl::ServerBuilder""
2019-03-26 08:04:32 -07:00
Karthik Ravi Shankar
e4bb7cb8bb
Revert "Moving ::grpc::ServerBuilder to ::grpc_impl::ServerBuilder"
2019-03-25 19:57:17 -07:00
Vijay Pai
f4fdd829d7
Merge pull request #17892 from RohanTalip/HandlerParameter-doc
...
Renamed the param in the documentation for HandleParameter to match the actual parameter.
2019-03-25 16:46:17 -07:00
Karthik Ravi Shankar
88fc2a6a52
Merge pull request #18242 from grpc/grpc_namespace_serverbuilder
...
Moving ::grpc::ServerBuilder to ::grpc_impl::ServerBuilder
2019-03-25 15:59:01 -07:00
Soheil Hassas Yeganeh
ad1b3e5094
Introduce grpc_byte_buffer_reader_peek and use it for Protobuf parsing.
...
grpc_byte_buffer_reader_next() copies and references the slice. This
is not always necessary since the caller will not use the slice
after destroying the byte buffer.
A prominent example is the protobuf parser, which
calls grpc_byte_buffer_reader_next() and immediately unrefs the slice
after the call. This ref() and unref() calls can be very expensive
in the hot path.
This commit introduces grpc_byte_buffer_reader_peek() which
essentialy return a pointer to the slice in the buffer, i.e.,
no copies, and no refs.
QPS of 1MiB 1 Channel callback benchmark increases by 5%.
More importantly insructions per cycle is increased by 10%.
Also add tests and benchmarks for byte_buffer_reader_peek()
This commit reaplies 509e77a5a3
2019-03-21 06:03:45 -04:00
Vijay Pai
50576179f8
Merge pull request #17978 from yashykt/interceptorcleanup1
...
Global Interceptor Registration allowed only once
2019-03-20 19:13:55 -07:00
Karthik Ravi Shankar
04af168cf8
Move Server into grpc_impl from grpc
2019-03-20 13:05:36 -07:00
Karthik Ravi Shankar
54171e276f
Fold server credentials from grpc to grpc_impl namespace
2019-03-20 10:00:34 -07:00
Vijay Pai
7b3a120295
Address reviewer comments
2019-03-18 16:51:15 -07:00
Vijay Pai
93f0a3f653
Address reviewer comments
2019-03-18 15:37:35 -07:00
Vijay Pai
04a6b8467c
Support callback on cancellation of server-side unary RPCs
2019-03-18 12:00:57 -07:00
Karthik Ravi Shankar
322e720fe6
Merge branch 'master' into grpc_namespace_serverbuilder
2019-03-18 10:39:38 -07:00
Vijay Pai
8c3d4a7dfd
Merge pull request #18072 from vjpai/client_streaming_hold
...
C++ callback API: Add support for client-side extra-reaction operations via Holds
2019-03-16 10:27:36 -07:00
Vijay Pai
48ce4ca939
Add support for extra-reaction operations via Holds
2019-03-15 16:17:01 -07:00
Norman Link
3d28761029
Fixing memory leak in interceptor by removing unsued send_status_
2019-03-13 21:42:02 +01:00
Karthik Ravi Shankar
3b7a47cde6
Moving ::grpc::ServerBuilder to ::grpc_impl::ServerBuilder
...
This change moves ServerBuilder class from grpc namespace to grpc_impl
namespace.
2019-03-04 17:01:14 -08:00
Vijay Pai
05d8ddfc6e
Support callback-based generic service
2019-03-04 13:13:12 -08:00
Soheil Hassas Yeganeh
509e77a5a3
Introduce grpc_byte_buffer_reader_peek and use it for Protobuf parsing.
...
grpc_byte_buffer_reader_next() copies and references the slice. This
is not always necessary since the caller will not use the slice
after destroying the byte buffer.
A prominent example is the protobuf parser, which
calls grpc_byte_buffer_reader_next() and immediately unrefs the slice
after the call. This ref() and unref() calls can be very expensive
in the hot path.
This commit introduces grpc_byte_buffer_reader_peek() which
essentialy return a pointer to the slice in the buffer, i.e.,
no copies, and no refs.
QPS of 1MiB 1 Channel callback benchmark increases by 5%.
More importantly insructions per cycle is increased by 10%.
Also add tests and benchmarks for byte_buffer_reader_peek()
2019-03-04 14:17:46 -05:00
Nicolas Noble
91ad888497
Revert "Revert "Folding the Channel class into the grpc_impl namespace.""
2019-02-27 16:53:23 -08:00
Vijay Pai
2eb25c871e
Avoid build errors
2019-02-26 03:08:06 -08:00
Vijay Pai
857e622e6f
Merge pull request #18098 from vjpai/try_2
...
Reduce starting callback counter to exclude client-side StartCall
2019-02-22 19:52:29 -08:00
Vijay Pai
147c61b2a4
Exclude StartCall from starting callback counter value
2019-02-20 21:13:44 -08:00
Yuwei Huang
3cbf4f50ea
Remove extra semicolons after function definitions
...
We are planning to enable -Wextra-semi flag in our project but some
header files in gRPC have extra semicolons that violates the check and
blocks us from enabling the flag.
This change removes unnecessary semicolons in the code. Note that having
semicolon after the GRPC_ABSTRACT macro technically also violates the
check, but it's fine for us since they are not used in public headers,
and it will be confusing to have lines ending only with GRPC_ABSTRACT,
so I keep them as-is.
2019-02-20 17:58:30 -08:00
Nicolas Noble
2ad245cb0c
Revert "Folding the Channel class into the grpc_impl namespace."
2019-02-15 09:52:15 -08:00
Nicolas "Pixel" Noble
035442b086
Fixing header guard.
2019-02-14 21:40:31 +01:00
Nicolas "Pixel" Noble
5847c3a87a
Reformat.
2019-02-14 20:05:59 +01:00
Nicolas "Pixel" Noble
12b0db3e57
Folding CompletionQueue and ServerCompletionQueue.
2019-02-14 20:01:14 +01:00
Yash Tibrewal
73353ad281
Merge branch 'master' into interceptorcleanup1
2019-02-13 12:47:47 -08:00
Yash Tibrewal
50497c2317
Reviewer comments
2019-02-13 12:46:07 -08:00
Nicolas "Pixel" Noble
63db582516
Merge branch 'master' of https://github.com/grpc/grpc into channel
2019-02-13 00:19:23 +01:00
Yash Tibrewal
c71b2f4fb7
Global Interceptor Registration allowed only once
2019-02-07 19:36:51 -08:00
Yash Tibrewal
89ee1a8b10
Improved interception docs
2019-02-07 19:18:40 -08:00
Rohan Talip
d68c0d29d9
Renamed the param in the documentation for HandleParameter to match the actual parameter.
...
This should prevent warnings like the following:
=== BUILD TARGET FirebaseFirestore OF PROJECT Pods WITH CONFIGURATION Debug ===
In file included from $PROJECT_DIR/platforms/ios/Pods/FirebaseFirestore/Firestore/core/src/firebase/firestore/remote/stream.mm:17:
In file included from $PROJECT_DIR/platforms/ios/Pods/FirebaseFirestore/Firestore/core/src/firebase/firestore/remote/stream.h:27:
In file included from $PROJECT_DIR/platforms/ios/Pods/FirebaseFirestore/Firestore/core/src/firebase/firestore/remote/grpc_connection.h:28:
In file included from $PROJECT_DIR/platforms/ios/Pods/FirebaseFirestore/Firestore/core/src/firebase/firestore/remote/grpc_stream.h:35:
In file included from $PROJECT_DIR/platforms/ios/build/emulator/grpcpp.framework/Headers/generic/generic_stub.h:24:
In file included from $PROJECT_DIR/platforms/ios/build/emulator/grpcpp.framework/Headers/support/async_stream.h:22:
In file included from $PROJECT_DIR/platforms/ios/build/emulator/grpcpp.framework/Headers/impl/codegen/async_stream.h:26:
In file included from $PROJECT_DIR/platforms/ios/build/emulator/grpcpp.framework/Headers/impl/codegen/service_type.h:24:
$PROJECT_DIR/platforms/ios/build/emulator/grpcpp.framework/Headers/impl/codegen/rpc_service_method.h:49:16: warning: parameter 'rpc_requester' not found in the function declaration
[-Wdocumentation]
/// \param rpc_requester : used only by the callback API. It is a function
^~~~~~~~~~~~~
$PROJECT_DIR/platforms/ios/build/emulator/grpcpp.framework/Headers/impl/codegen/rpc_service_method.h:49:16: note: did you mean 'requester'?
/// \param rpc_requester : used only by the callback API. It is a function
^~~~~~~~~~~~~
requester
1 warning generated.
2019-02-01 12:56:56 -08:00
Yash Tibrewal
5e2e61b6e5
Note on conditions of usage
2019-01-28 16:37:02 -08:00
Yash Tibrewal
3a2cfe50ec
Rever copyright changes
2019-01-28 16:18:49 -08:00
Yash Tibrewal
786598a6ff
Merge branch 'master' into interceptorcqavalanching
2019-01-28 11:54:39 -08:00
Yash Tibrewal
9dd8a13439
Restructure code to handle cases exposed by the callback api
2019-01-24 19:03:55 -08:00
Nicolas "Pixel" Noble
cabbd35014
Reformat.
2019-01-24 23:42:12 +01:00
Yash Tibrewal
4dcb14ec9e
Fix codegen_test_minimal
2019-01-24 13:05:05 -08:00
Yash Tibrewal
d347ec7ce0
Register for cq avalanching when interceptors are going to be run
2019-01-23 19:11:51 -08:00
Nicolas "Pixel" Noble
2fd079ff7c
Channel folding.
2019-01-23 21:40:07 +01:00
Yash Tibrewal
73b1a918e4
Slight update to grammar. Can probably be improved more
2019-01-08 09:28:09 -08:00
Yash Tibrewal
b8a542cd23
Update Send message interception methods docs
2019-01-08 09:20:15 -08:00
Vijay Pai
1730c06c48
Merge pull request #17655 from yashykt/callbackwriteoptions
...
Use the WriteOptions in Client Callback API
2019-01-08 08:15:43 -08:00
Yash Tibrewal
361acdbed1
Use the WriteOptions in Client Callback API
2019-01-07 17:33:16 -08:00
Yash Tibrewal
b35b449166
Update docs according to #17630
2019-01-07 17:20:58 -08:00
Yash Tibrewal
34d77aae5e
Always nullify serializer to free memory
2019-01-07 14:12:03 -08:00
Yash Tibrewal
dd067fd390
Merge branch 'master' into nocopyinterception
2019-01-07 10:09:06 -08:00
Yash Tibrewal
7d1491d64c
Address reviewer comments
2019-01-07 09:23:35 -08:00
Yash Tibrewal
059459a9ee
Merge branch 'master' into failhijackedrecv
2019-01-04 17:28:25 -08:00
Yash Tibrewal
b05ca9697b
Merge branch 'master' into failhijackedrecv
2019-01-04 11:30:03 -08:00
Yash Tibrewal
9b9ef64027
Add more information on the usage of FailHijackedRecvMessage
2019-01-04 11:29:57 -08:00
Yash Tibrewal
2b4781ca52
Use Status() instead of Status::OK to avoid issues with codegen_test_minimal
2019-01-03 18:32:10 -08:00
Yash Tibrewal
7eeda22d9e
s/two/three
2019-01-03 18:23:15 -08:00
Yash Tibrewal
df49204b97
Remove unused variable
2019-01-03 18:10:21 -08:00
Yash Tibrewal
4224384d39
Modifying semantics for GetSendMessage and GetSerializedSendMessage.
...
Also adding ModifySendMessage
2019-01-03 18:01:58 -08:00
Yash Tibrewal
bac79bdabe
Merge branch 'master' into failhijackedsend
2019-01-03 15:51:43 -08:00
Yash Tibrewal
50c60f03ba
Rename GetSendMessage to GetSerializedSendMessage and GetOriginalSendMessage to GetSendMessage
2019-01-03 12:21:19 -08:00
Yash Tibrewal
c6261f4b91
Rename new SendMessage types to SendMessagePtr
2019-01-02 14:46:52 -08:00
Yash Tibrewal
4aeba42528
Provide GetOriginalSendMessage for some APIs
2018-12-28 17:27:38 -08:00
Yash Tibrewal
24e37e249a
Merge branch 'master' into failhijackedrecv
2018-12-26 15:10:41 -08:00
Yash Tibrewal
5a6183f1bd
Merge branch 'master' into failhijackedsend
2018-12-26 13:33:06 -08:00
Vijay Pai
8cd1c0e379
Merge pull request #17552 from vjpai/interceptor_comments
...
Document purpose and validity of interception API
2018-12-18 22:43:49 -08:00
Vijay Pai
cfe08f35f3
Add comments explaining purpose and validity of interception API
2018-12-18 14:53:56 -08:00
Yash Tibrewal
3c3876a5da
Merge pull request #17544 from yashykt/factorydocs
...
Allow interceptor creators to return nullptr
2018-12-18 14:48:43 -08:00
hcaseyal
e51a28636f
Merge pull request #17512 from hcaseyal/update_md_doc
...
Improve metadata documentation for the user
2018-12-18 14:14:57 -08:00
Yash Tibrewal
31a775b425
Add missing argument
2018-12-18 12:52:14 -08:00
Yash Tibrewal
d590583456
Allow interceptor creators to return nullptr
2018-12-18 12:10:20 -08:00
Hope Casey-Allen
233123ae3f
Improve metadata documentation for the user
2018-12-18 11:50:17 -08:00
Yash Tibrewal
bb303513dc
Merge master
2018-12-18 11:40:52 -08:00
Vijay Pai
f2324e1c05
Reset the SendMessage pointer before post-interception
2018-12-16 16:01:14 -08:00
Vijay Pai
a8688d3bd3
Merge pull request #17510 from vjpai/bb_api
...
Add API comments indicating that byte buffer copy is size-independent
2018-12-14 15:18:01 -08:00
Vijay Pai
b0b4c0d9c3
Add API comments indicating that byte buffer copy is size-independent
2018-12-14 13:52:25 -08:00
Vijay Pai
23817e1738
Merge pull request #17434 from vjpai/delete
...
Delete unwanted constructor/assignment
2018-12-14 13:12:00 -08:00
Vijay Pai
e7be6223d8
Delete unwanted constructor/assignment
2018-12-06 17:10:03 -08:00
Vijay Pai
97de30d7b3
Allow the interceptor to know the method type
2018-12-06 15:51:31 -08:00
Vijay Pai
13a4977c23
Treat StartCall like a reserved callback since it is required
2018-12-06 09:02:03 -08:00
Vijay Pai
eb0b39df3d
Do OnDone as the actual last thing so that the reactor can be reused.
2018-12-05 16:04:26 -08:00
Vijay Pai
606177bbc8
Document that ClientContext must remain alive for duration of RPC
2018-12-03 20:00:08 -08:00
Vijay Pai
2a0c0d7ad6
Streaming API for callback servers
2018-11-30 16:14:21 -08:00
Vijay Pai
2b5d45ab38
Fix clang-tidy and golden file issues
2018-11-30 04:13:41 -08:00
Vijay Pai
28dd7981d6
clang-format
2018-11-30 04:13:40 -08:00
Vijay Pai
ea1156da3f
Stop exposing streaming object class
2018-11-30 04:13:40 -08:00
Vijay Pai
dac2066a1c
Make StartCall() a releasing operation so that you can pile up ops
2018-11-30 04:13:40 -08:00
Vijay Pai
fa45ffd418
Address reviewer comments
2018-11-30 04:13:40 -08:00
Vijay Pai
d7eb26648d
Client callback streaming
2018-11-30 04:13:40 -08:00
Yash Tibrewal
8fb11e6d5e
Apply the conversion on the status irrespective of whether Pluck returned true
2018-11-21 14:11:59 -08:00
Yash Tibrewal
544f2a5abb
Necessary change after #17219
2018-11-21 14:00:16 -08:00
Yash Tibrewal
00c9c40004
Remove extraneous logging statements
2018-11-15 16:01:14 -08:00
Yash Tibrewal
d4ebd30eb2
Add method to get status of send message op on POST_SEND_MESSAGE
2018-11-15 15:57:43 -08:00
Yash Tibrewal
0911e489e3
Add a method to check whether the message was received successfully
2018-11-15 13:55:56 -08:00
Yash Tibrewal
a9bee9b7ed
Make Pluck use the changes made in FinalizeResult
2018-11-14 17:48:35 -08:00
Yash Tibrewal
5d7d6c0fbd
Add method to fail hijacked send messages
2018-11-14 17:35:26 -08:00
Vijay Pai
0e29d7b9bc
Properly clear metadata and other structs when reusing ServerContext
2018-11-13 12:44:56 -08:00
Yash Tibrewal
565edf5297
Add safety checks
2018-11-09 19:51:11 -08:00
Yash Tibrewal
699c10386d
Add method to fail recv msg for hijacked rpcs
2018-11-09 19:43:00 -08:00
Yash Tibrewal
a803f96e5a
Add comment on cancellation being forever alone in the batch
2018-11-06 15:32:05 -08:00
Yash Tibrewal
193b4b57ec
Merge pull request #17072 from yashykt/interceptor_cancellation
...
Interceptors should see a Cancellation notification
2018-11-06 14:56:24 -08:00
Vijay Pai
1e850944e9
Release the CallbackWithSuccessTag from a server context completionop
2018-11-06 11:49:17 -08:00
Vijay Pai
526d2e6004
Refactoring of CallbackWithSuccessTag
2018-11-06 11:20:50 -08:00
Yash Tibrewal
f055c1cfd2
Remove unnecessary header
2018-11-05 14:35:55 -08:00
Yash Tibrewal
f240af0cb8
Add GPR_CODEGEN_DEBUG_ASSERT
2018-11-05 13:56:06 -08:00
Yash Tibrewal
6faa17c6ca
s/new/post-1.0
2018-11-02 11:46:10 -07:00
Yash Tibrewal
3ac7f2d24c
Merge pull request #17053 from yashykt/global_interceptor
...
Add global client interceptor factory
2018-11-02 08:56:16 -07:00
Yash Tibrewal
ded9434e4c
Add array header for complaining compiler
2018-11-01 18:36:40 -07:00
Yash Tibrewal
382fe4b475
Add override back to GetInterceptedChannel
2018-11-01 18:17:02 -07:00
Yash Tibrewal
ddcadad5b5
Add note on hijacking
2018-11-01 16:26:04 -07:00
Yash Tibrewal
b732e9c403
Make client interceptors see notification even if Cancel was done before the RPC was issued. Also add tests
2018-11-01 16:14:40 -07:00
Yash Tibrewal
fd88dcaf55
Add cancellation notification
2018-11-01 11:58:46 -07:00
Yash Tibrewal
3ece34d45c
Let us clean a few things before getting started
2018-10-31 15:29:26 -07:00
Yash Tibrewal
857e79ce00
Improve documentation
2018-10-31 14:35:54 -07:00
Vijay Pai
932abf48a3
Address reviewer comments.
2018-10-31 01:02:07 -07:00
Vijay Pai
2f47137a6e
Add support for IsCancelled check
2018-10-30 23:15:59 -07:00
Vijay Pai
b460622c2d
Address reviewer comments
2018-10-30 12:35:56 -07:00
Vijay Pai
47d0d5bf1f
Merge branch 'master' into server_callback
2018-10-30 12:29:35 -07:00
Yash Tibrewal
0390b29e15
Register global interceptors functionality
2018-10-30 02:43:01 -07:00
Yash Tibrewal
3c1ca6bf39
Merge pull request #17034 from yashykt/interceptorcleanup
...
Get ClientContext included with ChannelInterface, and slight more cle…
2018-10-30 00:12:55 -07:00
Vijay Pai
84e763f10a
Experimental C++ server callback unary API
2018-10-29 13:41:25 -07:00
Vijay Pai
371b1d99d5
Add call as param to MethodHandler::Deserialize to allow arena use
2018-10-29 02:10:00 -07:00
Yash Tibrewal
bfd1935afc
Add note on the experimental nature of the additional method in ServerInterface
2018-10-29 01:56:12 -07:00
Yash Tibrewal
85ddf5c713
Get ClientContext included with ChannelInterface, and slight more cleanup
2018-10-29 00:14:05 -07:00
Yash Tibrewal
01313976e1
Merge pull request #16842 from yashykt/interceptors
...
Experimental API for Client and Server Interception
2018-10-28 23:36:59 -07:00
Yash Tibrewal
395edbfa24
Replace size_t initialization from false to 0
2018-10-27 20:14:06 -07:00
Yash Tibrewal
2475744c75
Change index to size_t
2018-10-26 18:14:55 -07:00
Yash Tibrewal
005eb29298
Missed reviewer comments
2018-10-26 16:52:18 -07:00
Yash Tibrewal
1ea195b6f3
Reviewer comments except for void * fixed
2018-10-26 16:11:48 -07:00
Yash Tibrewal
6a5f39db3c
Separate out interceptorbatchmethodimpl to a different file
2018-10-26 15:47:16 -07:00
Yash Tibrewal
c2e3fde9b5
Rename call.h to call_op_set.h and call_wrapper.h to call.h
2018-10-26 15:15:48 -07:00
Sree Kuchibhotla
91faa8e8f0
Fix an outdated comment
...
Fix the outdated commment in ServerCompletionQueue constructor
2018-10-26 10:49:52 -07:00
Yash Tibrewal
cc21d32c77
Some cleanup
2018-10-26 00:13:55 -07:00
Yash Tibrewal
312feb4202
Adding generic rpc and unimplemented rpc test for server interceptors
2018-10-25 21:43:49 -07:00
Yash Tibrewal
3896dabb85
Merge branch 'master' into interceptors
2018-10-25 19:50:10 -07:00
Yash Tibrewal
a094b7b312
Added server async tests
2018-10-25 19:24:30 -07:00
Vijay Pai
63921c7f63
Merge pull request #16992 from morganchen12/warnings
...
Fix warnings in doc comments
2018-10-25 17:04:42 -07:00
Vijay Pai
56f1d3d697
clang-format
2018-10-25 11:06:32 -07:00
ncteisen
4fa389b137
Unifying grpc build hacks
2018-10-24 17:25:51 -07:00
ncteisen
482641501c
Revert "Revert "Refactor Channelz Service to Support Internal Build""
...
This reverts commit 2eafaccba6 .
2018-10-24 17:22:22 -07:00
Yash Tibrewal
281de1bb30
Solve memory leak due to double setting of set_server_rpc_info
2018-10-24 15:54:08 -07:00
Noah Eisen
2eafaccba6
Revert "Refactor Channelz Service to Support Internal Build"
2018-10-24 15:44:50 -07:00
Morgan Chen
6f4f17a3d0
Fix documentation warnings
2018-10-24 15:29:19 -07:00
Vijay Pai
22dc39ae66
Change CatchingCallback function to be varargs for broader use
2018-10-24 02:28:57 -07:00
Yash Tibrewal
62280b42c7
Add client streaming, server streaming and bidi streaming tests
2018-10-23 21:08:39 -07:00
Yash Tibrewal
66cc56bb03
Another server side test
2018-10-23 15:33:08 -07:00