Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / grpc / deps / grpc / src / core / ext / filters / client_channel / server_address.cc
1 /*
2  *
3  * Copyright 2018 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18
19 #include <grpc/support/port_platform.h>
20
21 #include "src/core/ext/filters/client_channel/server_address.h"
22
23 namespace grpc_core {
24
25 //
26 // ServerAddress
27 //
28
29 ServerAddress::ServerAddress(const grpc_resolved_address& address,
30                              grpc_channel_args* args)
31     : address_(address), args_(args) {}
32
33 ServerAddress::ServerAddress(const void* address, size_t address_len,
34                              grpc_channel_args* args)
35     : args_(args) {
36   memcpy(address_.addr, address, address_len);
37   address_.len = static_cast<socklen_t>(address_len);
38 }
39
40 bool ServerAddress::operator==(const ServerAddress& other) const {
41   return address_.len == other.address_.len &&
42          memcmp(address_.addr, other.address_.addr, address_.len) == 0 &&
43          grpc_channel_args_compare(args_, other.args_) == 0;
44 }
45
46 bool ServerAddress::IsBalancer() const {
47   return grpc_channel_arg_get_bool(
48       grpc_channel_args_find(args_, GRPC_ARG_ADDRESS_IS_BALANCER), false);
49 }
50
51 }  // namespace grpc_core