1 #region Copyright notice and license
2 // Copyright 2015 gRPC authors.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //     http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 #endregion
16 using System;
17 using System.Runtime.InteropServices;
18 using System.Threading;
19 using System.Threading.Tasks;
20 
21 namespace Grpc.Core.Internal
22 {
23     /// <summary>
24     /// grpc_call_credentials from <c>grpc/grpc_security.h</c>
25     /// </summary>
26     internal class CallCredentialsSafeHandle : SafeHandleZeroIsInvalid
27     {
28         static readonly NativeMethods Native = NativeMethods.Get();
29 
CallCredentialsSafeHandle()30         private CallCredentialsSafeHandle()
31         {
32         }
33 
CreateComposite(CallCredentialsSafeHandle creds1, CallCredentialsSafeHandle creds2)34         public static CallCredentialsSafeHandle CreateComposite(CallCredentialsSafeHandle creds1, CallCredentialsSafeHandle creds2)
35         {
36             return Native.grpcsharp_composite_call_credentials_create(creds1, creds2);
37         }
38 
ReleaseHandle()39         protected override bool ReleaseHandle()
40         {
41             Native.grpcsharp_call_credentials_release(handle);
42             return true;
43         }
44     }
45 }
46