Commit Graph

519 Commits

Author SHA1 Message Date
Karthik Ravi Shankar e4b992ee48 Merge branch 'master' into migrate-client-context 2019-06-10 14:01:28 -07:00
Yash Tibrewal 6ed651356d Fix typo 2019-06-07 16:28:31 -07:00
Karthik Ravi Shankar 522ddfe273 Move ClientContext to grpc_impl
ClientContext is another file which needs to be moved from grpc to
grpc_impl for referencing it.
2019-06-05 16:31:39 -07:00
yang-g a874fd8bbb Resolve review comments 2019-05-30 15:20:10 -07:00
yang-g bd97b1361d Delete wrapper in executor thread to avoid self-joining deadlock 2019-05-29 13:30:28 -07:00
yang-g 47dbf1dd26 Second approach 2019-05-28 23:47:29 -07:00
Karthik Ravi Shankar 40210d3b8a Move Channel to grpc_impl 2019-05-17 09:12:33 -07:00
Karthik Ravi Shankar 3996599392 Fix clang script errors 2019-05-15 14:30:33 -07:00
Karthik Ravi Shankar 772a74aced Revert changes to Channel 2019-05-15 14:24:17 -07:00
Karthik Ravi Shankar 3a31b96ef9 Fix error from make 2019-04-30 16:39:54 -07:00
Karthik Ravi Shankar e3a0c85960 Merge branch 'master' into grpc_namespace_channel_new 2019-04-30 14:30:03 -07:00
Karthik Ravi Shankar 5f6a57a4d0 Formatting issues 2019-04-26 13:08:25 -07:00
Karthik Ravi Shankar 7fc86bd62f Fix make errors 2019-04-24 10:40:41 -07:00
Karthik Ravi Shankar 360251f196 Fix make errors 2019-04-23 18:23:16 -07:00
Karthik Ravi Shankar 5274deb32b Fix the rebase and build 2019-04-23 14:12:48 -07:00
Karthik Ravi Shankar 2049b6c2bd Fix build errors 2019-04-23 14:04:17 -07:00
Karthik Ravi Shankar 60bdeef9f4 Move Channel also to impl for now 2019-04-23 14:03:06 -07:00
Karthik Ravi Shankar 8d2207da4d WIP: New changes to make namespace work 2019-04-23 13:56:29 -07:00
Karthik Ravi Shankar 603d014f0e Changes to fold credentials into grpc_impl from grpc 2019-04-23 13:54:26 -07:00
Karthik Ravi Shankar 858b5cca20 Fix clang_format_code.sh issues and move the internal calls to new name 2019-04-23 11:45:11 -07:00
Karthik Ravi Shankar 17ca558e13 Merge branch 'master' into grpc_namespace_channel_arguments 2019-04-23 11:38:13 -07:00
Soheil Hassas Yeganeh 2b9448a71c Revert "Revert "Introduce C++ wrappers for gpr_mu and gpr_cv.""
This reverts commit d09c9f8e20.
2019-04-17 14:35:29 -04:00
Alexander Polcyn d09c9f8e20 Revert "Introduce C++ wrappers for gpr_mu and gpr_cv."
This reverts commit a26c09dd25.
2019-04-11 16:52:54 -07:00
Karthik Ravi Shankar 2554f122c1 Remove unecessary files 2019-04-11 12:06:41 -07:00
Karthik Ravi Shankar 973fa6950e Fold Channel into grpc_impl from grpc namespace 2019-04-11 12:04:23 -07:00
Karthik Ravi Shankar dad3f34207
Revert "Revert "Revert "Folding the Channel class into the grpc_impl namespace.""" 2019-04-10 12:14:04 -07:00
Yash Tibrewal 8e195ddeb9 Merge branch 'master' into lamechannelinterception 2019-04-09 15:30:16 -07:00
Karthik Ravi Shankar 5a08d2aae7 Merge branch 'master' into revert-18076-revert-17797-channel 2019-04-09 08:22:37 -07:00
Soheil Hassas Yeganeh a26c09dd25 Introduce C++ wrappers for gpr_mu and gpr_cv.
Introduce RAII wrappers in the grpc::internal and grpc_core
namespaces, and use them in place of std::mutex and
std::condition_variable.

Note that, since std::mutex is also used by the public
C++ headers we cannot introduce these wrappers in grpc_core.

Also, note that in grpcpp we cannot use gRPC core and vice versa.
So we had to duplicate the code, once using core_codegen_interface
and once using direct calls.
2019-04-08 18:27:07 -04:00
Karthik Ravi Shankar 9875fabdd4 Merge branch 'master' into revert-18076-revert-17797-channel 2019-04-08 12:55:07 -07:00
Karthik Ravi Shankar 9b42ab79e0 Make build fixes for bazel build :all 2019-04-04 16:40:16 -07:00
Karthik Ravi Shankar 5b1bf21090
Merge pull request #18434 from grpc/grpc_namespace_generic_stub
Fold GenericStub from grpc_impl to grpc
2019-04-04 13:46:44 -07:00
Karthik Ravi Shankar e642e175e7
Merge pull request #18374 from grpc/grpc_namespace_channel_create
Moving create_channel from grpc to grpc_impl
2019-04-03 13:56:19 -07:00
Yash Tibrewal cb6a2968fe Make Interceptors work for lame channels 2019-04-03 11:55:04 -07:00
Karthik Ravi Shankar 3d6f118a5f Merge branch 'master' into grpc_namespace_generic_stub 2019-04-01 13:52:27 -07:00
Karthik Ravi Shankar 3354f2c5a7
Merge pull request #18373 from grpc/grpc_namespace_channel_create_posix
Move create_channel_posix from grpc to grpc_impl namespace
2019-03-29 10:17:59 -07:00
Karthik Ravi Shankar b2d9d7c8be Merge branch 'master' into grpc_namespace_channel_create 2019-03-29 08:46:27 -07:00
Vijay Pai fb5c385208 Remove unneeded header files 2019-03-27 16:46:01 -07:00
Karthik Ravi Shankar 40440b9f9c Merge branch 'master' into grpc_namespace_generic_stub 2019-03-27 14:42:02 -07:00
Karthik Ravi Shankar 20f3e29d41 Merge branch 'master' into grpc_namespace_channel_create 2019-03-27 12:33:02 -07:00
Karthik Ravi Shankar 4b0175f2c8 Fix errors from clang_format_code.sh 2019-03-25 15:53:22 -07:00
Karthik Ravi Shankar 130962490b Make changes to fix test failures 2019-03-25 15:52:42 -07:00
Karthik Ravi Shankar 526bf39f89 Fold GenericStub from grpc_impl to grpc 2019-03-19 12:34:30 -07:00
Karthik Ravi Shankar 2772f519e6 Fix errors from presubmit scripts. 2019-03-15 14:28:32 -07:00
Karthik Ravi Shankar 4a0c3b848f Fix broken tests 2019-03-15 13:16:46 -07:00
Nicolas Noble 91ad888497
Revert "Revert "Folding the Channel class into the grpc_impl namespace."" 2019-02-27 16:53:23 -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 0c19be2fc8 Fixing cronet 2019-02-13 20:12:13 +01:00
Nicolas "Pixel" Noble 39d3b7335c Missed a spot. 2019-02-13 19:17:18 +01:00
Yash Tibrewal cddb5519f2 Add a test only method to reset global interceptor 2019-02-08 15:57:29 -08:00
Yash Tibrewal c71b2f4fb7 Global Interceptor Registration allowed only once 2019-02-07 19:36:51 -08:00
Nicolas "Pixel" Noble cabbd35014 Reformat. 2019-01-24 23:42:12 +01:00
Nicolas "Pixel" Noble dffbe4a1eb Merge branch 'master' of https://github.com/grpc/grpc into channel 2019-01-23 21:40:25 +01:00
Nicolas "Pixel" Noble 2fd079ff7c Channel folding. 2019-01-23 21:40:07 +01:00
Lei Huang 3bd12ee2a8 grpc: init compression_algorithm_ in ClientContext ctor
`compression_algorithm_` could be a random value because not
initialized in ctor.
2019-01-17 16:22:30 -07:00
Soheil Hassas Yeganeh 9decf48632 Move security credentials, connectors, and auth context to C++
This is to use `grpc_core::RefCount` to improve performnace.
This commit also replaces explicit C vtables, with C++ vtable
with its own compile time assertions and performance benefits.
It also makes use of `RefCountedPtr` wherever possible.
2018-12-13 10:38:12 -05:00
Vijay Pai 97de30d7b3 Allow the interceptor to know the method type 2018-12-06 15:51:31 -08:00
Vijay Pai ea1156da3f Stop exposing streaming object class 2018-11-30 04:13:40 -08:00
Vijay Pai d7eb26648d Client callback streaming 2018-11-30 04:13:40 -08:00
Yang Gao e4e564679b
Merge pull request #17154 from liutongxuan/master
g_default_client_callbacks shouldn't be global variable
2018-11-20 14:10:34 -08:00
Yash Tibrewal 626f1c9d53 Remove the std::unique_ptr, instead use move semantics everywhere 2018-11-15 16:49:43 -08:00
tongxuan.ltx c21393e553 g_default_client_callbacks shouldn't be global variable
In tensorflow, RPC client thread doesn't active release,
rely on process to cleanup. If process have already
cleanup the global variable(g_default_client_callbacks),
after that client issue a RPC call which contains the ClientContext,
then once ClientContext destructor called,
pure virtual functions call error is reported.
2018-11-09 12:34:59 +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
Yash Tibrewal 4cc3717e15 move client_interceptor.cc from src/cpp/codegen to src/cpp/client 2018-11-05 15:03:57 -08:00
Yash Tibrewal f8561952e9 Don't use default capture 2018-11-05 12:15:56 -08:00
Yash Tibrewal e08a2b387a Prefer lambda expressions over std::bind 2018-11-02 15:56:57 -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 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
Vijay Pai 932abf48a3 Address reviewer comments. 2018-10-31 01:02:07 -07:00
Yash Tibrewal 0390b29e15 Register global interceptors functionality 2018-10-30 02:43:01 -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
Yash Tibrewal b358ef85dc Merge branch 'master' into interceptors 2018-10-22 10:39:27 -07:00
Yash Tibrewal 9b83b7d19e Adding intercepted channel 2018-10-22 02:42:03 -07:00
Yash Tibrewal 0b785ae8cf Remove unneeded file 2018-10-17 14:37:35 -07:00
Yash Tibrewal 6fb7bd23bf s/GPR_ASSERT/GPR_CODEGEN_ASSERT and few more bugs 2018-10-16 14:10:30 -07:00
Yash Tibrewal 6f05a711e6 Adding a test 2018-10-16 14:10:17 -07:00
Yash Tibrewal 63bdf4e236 More changes for client interception 2018-10-16 14:10:02 -07:00
Yash Tibrewal 5d831da9d1 Adding hook points for interception. Code compiles and tests still run 2018-10-16 14:09:34 -07:00
Yash Tibrewal 130eeeaeb9 Merge branch 'master' into interceptors_initial 2018-10-02 14:49:17 -07:00
Yash Tibrewal 1d999617e2 Add experimental versions with interceptors for create channel from fd and inproc channel 2018-09-30 22:13:44 -07:00
Yash Tibrewal b741edf37e Error fixes 2018-09-27 17:34:19 -07:00
Soheil Hassas Yeganeh 80ce1865d7 Make SliceFromArray() static in channel_cc.cc.
Also, use `context->authority_` instead of `context->authority()`
for consistency.
2018-09-27 11:27:15 -04:00
Yash Tibrewal a1598c5abf Create interfaces and initial plumbing for interception API 2018-09-26 19:25:30 -07:00
Soheil Hassas Yeganeh 369cfe118c Use SliceFromCopiedString() for host name.
This is to address Yang's review comment.
2018-09-25 21:59:15 -04:00
Soheil Hassas Yeganeh c1a1d66864 Avoid allocating temporary strings in Channel::CreateCall().
Add `SliceFromArray()` which takes a `char*` instead of
`const string&`, to save string allocations for copying from a `char *`.

Use the new API to eliminate two string allocations and copies per call for
method and host names.

release-note: no
2018-09-25 17:50:45 -04:00
Vijay Pai 9e6511ae2e Make the core callback interface API so that it can be used in generated code 2018-09-19 23:57:56 -07:00
Vijay Pai 6b6bdbbb76 Address reviewer and clang-tidy comments 2018-08-30 15:46:27 -07:00
Vijay Pai 8bf52535d1 Provide a generic client-side unary callback API 2018-08-30 15:46:27 -07:00
Mark D. Roth f7e72560b6 Add experimental API for resetting connection backoff. 2018-08-06 14:46:53 -07:00
Yihua Zhang acc6ba0c24 Add C++ wrapper for local credentials 2018-07-24 12:00:49 -07:00
Ian Haken 68eff58df6 Create verify_peer_options when creating ssl credentials in order to expose a verification callback option.
These options are not yet exposed to languages outside of core.
2018-06-12 12:59:37 -07:00
Yihua Zhang fe2fa0c1c8 Add C++ experimental API extensions for ALTS C stack 2018-04-16 15:11:32 -07:00
Vijay Pai 7fed69b7ad Use static_cast rather than reinterpret_cast whenever possible 2018-03-05 16:35:10 -08:00
Vijay Pai da69355f30 C++ize gpr_thread as grpc_core::Thread, make it 2-phase init (construct/Start) 2018-02-19 22:39:58 -08:00
Muxi Yan 0e00c43082 Move headers from grpc++ to grpcpp 2018-02-15 14:49:34 -08:00
Vijay Pai c745690caf Internalize gpr_thd except for id and currentid 2018-02-12 11:44:52 -08:00
Vijay Pai 239b7d4b0b Merge branch 'master' into gpr_review 2018-02-08 11:08:41 -08:00
Vijay Pai d4d0a30c6f Privatize useful.h and avl.h 2018-02-02 09:16:44 -08:00
David Garcia Quintas a21ab2ba29 Fix compression algorithm accessors 2018-02-01 16:24:00 -08:00
Mark D. Roth dbdf495f61 Split lib/support into lib/gpr and lib/gpr++. 2018-01-18 11:21:12 -08:00
Jan Tattermusch c9ec2c0888
Revert "Stop using std::thread in C++ library since it can trigger exceptions" 2018-01-12 10:16:22 +01:00
Vijay Pai 5dd32268be Switch C++ sync server to use gpr_thd rather than std::thread and provide resource exhaustion mechanism 2018-01-08 10:02:38 -08:00
Craig Tiller be98d24841 clang-format after nullptr changes 2017-11-10 15:26:57 -08:00
Craig Tiller 4ac2b8e585 Enable clang-tidy as a sanity check, fix up all known failures 2017-11-10 14:14:17 -08:00
Craig Tiller baa14a975e Update clang-format to 5.0 2017-11-03 09:09:36 -07:00
Yuchen Zeng b16df75471 Update with internal C++ interfaces 2017-10-30 12:09:16 -07:00
Yuchen Zeng 6a48dc544e Remove c++ channel connectivity watcher 2017-10-30 12:06:52 -07:00
Vijay Pai 7a648854e9
Adopt the static factory pattern (#10)
* Switch sync streams from "struct internal" to static factory in namespace internal

* Reduce diff size

* fix friends

* Use static factory pattern for async unary calls

* Use static factories for async streams

* clang-format
2017-10-27 10:22:51 -07:00
Vijay Pai 06e174a088 Separate public and internal C++ interfaces 2017-10-26 14:28:26 -07:00
Vijay Pai 53cec0fc8f Update create_channel.cc 2017-10-17 06:46:19 -07:00
Krasimir Georgiev 1f42fae4c5 Fix initialization bug in channel creation 2017-10-17 08:38:20 +02:00
ncteisen 520cc8f555 Fix ClangTidy 2017-09-29 10:37:45 -07:00
Mark D. Roth ede8ed2156 Merge pull request #12374 from markdroth/plugin_credentials_api_fix
Change plugin credentials API to support both sync and async modes
2017-09-29 07:26:50 -07:00
yang-g cfd20c4262 Add CompositeCallCredentials 2017-09-28 22:00:35 -07:00
Mark D. Roth 61b26f97b0 Code review changes. 2017-09-28 08:40:03 -07:00
Mark D. Roth b4c01f9e29 Merge remote-tracking branch 'upstream/master' into plugin_credentials_api_fix 2017-09-25 12:36:30 -07:00
Vijay Pai 2046d0b3c5 Add unary call mode to GenericStub to allow generic RPC with 1 CQ trip 2017-09-21 22:23:44 -07:00
Yash Tibrewal 9eb8672bbe Removing deprecated string to char * conversions 2017-09-17 23:55:58 -07:00
Vijay Pai 4b047a3bff Construction of streams shouldn't require triggering async ops 2017-09-14 17:55:13 -07:00
Mark D. Roth 0aee498525 Merge remote-tracking branch 'upstream/master' into plugin_credentials_api_fix 2017-09-08 08:01:29 -07:00
Mark D. Roth 1ff6ee12cc clang-format 2017-09-06 14:56:18 -07:00
Yuchen Zeng 26b0a34fbe Address review comments 2017-09-05 13:32:44 -07:00
Yuchen Zeng 5150cbd02d Fix timer shutdown process 2017-09-01 23:05:15 -07:00
Mark D. Roth 2caf021772 Change plugin credentials API to support both sync and async modes. 2017-09-01 15:04:13 -07:00
Yuchen Zeng 4a11ecc076 Add ChannelConnectivityWatcher::Ref()/Unref() 2017-08-25 15:17:45 -07:00
Yuchen Zeng ba23e799dc Sanity fixes 2017-08-24 23:13:09 -07:00
Yuchen Zeng 504be5c693 Privatize ChannelConnectivityWatcher members 2017-08-24 17:47:43 -07:00
Yuchen Zeng ddaef3e325 Remove non-POD global variables 2017-08-24 15:34:52 -07:00
Yuchen Zeng f1d50983ae Document GRPC_DISABLE_CHANNEL_CONNECTIVITY_WATCHER 2017-08-24 12:08:03 -07:00
Yuchen Zeng 33845d08d4 Check env variable 2017-08-24 03:28:51 -07:00
Yuchen Zeng b4481a9a13 Share one monitoring thread between channels 2017-08-24 03:13:42 -07:00
Yuchen Zeng bfb4e06e3c Check connectivity intermittently 2017-08-23 23:47:15 -07:00
Yuchen Zeng 4d88416c11 Remove atm in ChannelConnectivityWatcher 2017-08-23 15:20:01 -07:00
Yuchen Zeng a2e506e8d9 Avoid using timers 2017-08-22 20:46:52 -07:00
Yuchen Zeng 6a6d618034 Prevent watching unsuppoted channels 2017-08-22 18:56:25 -07:00
Yuchen Zeng 2411bacd04 Address review comments 2017-08-22 18:56:25 -07:00
Yuchen Zeng ee3e3310bb Add reconnect channel tests 2017-08-22 18:56:25 -07:00
Yuchen Zeng be9b814240 Add ChannelConnectivityWatcher 2017-08-22 18:56:25 -07:00
Garret Kelly 9663d0337e Add a GrpcLibraryInitializer to client_context.cc
It's feasible that a program be written/linked such that it only use
ClientContext from grpc++, which could end up with the other instances
of GrpcLibraryInitializer not ending up in the final binary.  Add a
GrpcLibraryInitializer to client_context.cc to ensure that the library
is initialized.  The primary side-effect of the library not being
initialized when only using a ClientContext is that the destructor for
ClientContext indirectly ends up trying to call through
g_core_codegen_interface when destructing its metadata, which is null.
2017-07-31 15:07:59 -04:00
Vijay Pai 6abd20020b Revert "Separate internal-only and public parts of C++ API" 2017-07-25 00:43:30 -07:00
Vijay Pai c0baec60a1 Internalize structs and methods meant for being exposed through codegen
or that interface with core and are only for internal use
2017-07-10 14:33:53 -07:00
Jan Tattermusch 7897ae9308 auto-fix most of licenses 2017-06-08 11:22:41 +02:00
Craig Tiller d4e9a4863a Convert all async client stream types to not allocate 2017-04-05 15:41:59 -07:00
Craig Tiller 66051c618f Async end2end test passes 2017-03-31 09:16:35 -07:00
Craig Tiller dd36b15315 Call ref/unref, bugfixes 2017-03-31 08:27:28 -07:00
Yuxuan Li bdc76ab37b bug fix 2017-03-08 10:59:31 -08:00
Yuxuan Li 34894e4b1c Implemented stream coalescing design
(RFC:https://github.com/grpc/proposal/pull/3). Add necessary
microbenchmarks to show reduced writes/iter for short streams. Add
necessary end2end test to test out newly added apis. Filter those tests
using *WithCoalescingApi*.
2017-03-08 10:59:31 -08:00
Craig Tiller 7c70b6c144 Revert "Revert "Metadata handling rewrite""
This reverts commit 5e01e2ac97.
2017-01-23 07:48:42 -08:00