| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | 
							- /*
 
-  *
 
-  * Copyright 2015 gRPC authors.
 
-  *
 
-  * Licensed under the Apache License, Version 2.0 (the "License");
 
-  * you may not use this file except in compliance with the License.
 
-  * You may obtain a copy of the License at
 
-  *
 
-  *     http://www.apache.org/licenses/LICENSE-2.0
 
-  *
 
-  * Unless required by applicable law or agreed to in writing, software
 
-  * distributed under the License is distributed on an "AS IS" BASIS,
 
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
-  * See the License for the specific language governing permissions and
 
-  * limitations under the License.
 
-  *
 
-  */
 
- #include <memory>
 
- #include <grpcpp/channel.h>
 
- #include <grpcpp/create_channel.h>
 
- #include <grpcpp/impl/grpc_library.h>
 
- #include <grpcpp/security/credentials.h>
 
- #include <grpcpp/support/channel_arguments.h>
 
- #include "src/cpp/client/create_channel_internal.h"
 
- namespace grpc_impl {
 
- std::shared_ptr<grpc::Channel> CreateChannelImpl(
 
-     const grpc::string& target,
 
-     const std::shared_ptr<grpc::ChannelCredentials>& creds) {
 
-   return CreateCustomChannelImpl(target, creds, grpc::ChannelArguments());
 
- }
 
- std::shared_ptr<grpc::Channel> CreateCustomChannelImpl(
 
-     const grpc::string& target,
 
-     const std::shared_ptr<grpc::ChannelCredentials>& creds,
 
-     const grpc::ChannelArguments& args) {
 
-   grpc::GrpcLibraryCodegen
 
-       init_lib;  // We need to call init in case of a bad creds.
 
-   return creds ? creds->CreateChannelImpl(target, args)
 
-                : grpc::CreateChannelInternal(
 
-                      "",
 
-                      grpc_lame_client_channel_create(
 
-                          nullptr, GRPC_STATUS_INVALID_ARGUMENT,
 
-                          "Invalid credentials."),
 
-                      std::vector<std::unique_ptr<
 
-                          grpc::experimental::
 
-                              ClientInterceptorFactoryInterface>>());
 
- }
 
- namespace experimental {
 
- /// Create a new \em custom \a Channel pointing to \a target with \a
 
- /// interceptors being invoked per call.
 
- ///
 
- /// \warning For advanced use and testing ONLY. Override default channel
 
- /// arguments only if necessary.
 
- ///
 
- /// \param target The URI of the endpoint to connect to.
 
- /// \param creds Credentials to use for the created channel. If it does not
 
- /// hold an object or is invalid, a lame channel (one on which all operations
 
- /// fail) is returned.
 
- /// \param args Options for channel creation.
 
- std::shared_ptr<grpc::Channel> CreateCustomChannelWithInterceptors(
 
-     const grpc::string& target,
 
-     const std::shared_ptr<grpc::ChannelCredentials>& creds,
 
-     const grpc::ChannelArguments& args,
 
-     std::vector<
 
-         std::unique_ptr<grpc::experimental::ClientInterceptorFactoryInterface>>
 
-         interceptor_creators) {
 
-   return creds ? creds->CreateChannelWithInterceptors(
 
-                      target, args, std::move(interceptor_creators))
 
-                : ::grpc::CreateChannelInternal(
 
-                      "",
 
-                      grpc_lame_client_channel_create(
 
-                          nullptr, GRPC_STATUS_INVALID_ARGUMENT,
 
-                          "Invalid credentials."),
 
-                      std::move(interceptor_creators));
 
- }
 
- }  // namespace experimental
 
- }  // namespace grpc_impl
 
 
  |