1 // Copyright 2021 gRPC authors.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #include <grpc/support/port_platform.h>
16 
17 #ifndef GRPC_NO_BINDER
18 
19 #include "src/core/ext/transport/binder/client/security_policy_setting.h"
20 
21 namespace grpc_binder {
22 
Set(absl::string_view connection_id,std::shared_ptr<grpc::experimental::binder::SecurityPolicy> security_policy)23 void SecurityPolicySetting::Set(
24     absl::string_view connection_id,
25     std::shared_ptr<grpc::experimental::binder::SecurityPolicy>
26         security_policy) {
27   grpc_core::MutexLock l(&m_);
28   GPR_ASSERT(security_policy_map_.count(std::string(connection_id)) == 0);
29   security_policy_map_[std::string(connection_id)] = security_policy;
30 }
31 
32 std::shared_ptr<grpc::experimental::binder::SecurityPolicy>
Get(absl::string_view connection_id)33 SecurityPolicySetting::Get(absl::string_view connection_id) {
34   grpc_core::MutexLock l(&m_);
35   GPR_ASSERT(security_policy_map_.count(std::string(connection_id)) != 0);
36   return security_policy_map_[std::string(connection_id)];
37 }
38 
GetSecurityPolicySetting()39 SecurityPolicySetting* GetSecurityPolicySetting() {
40   static SecurityPolicySetting* s = new SecurityPolicySetting();
41   return s;
42 }
43 
44 }  // namespace grpc_binder
45 #endif
46