| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | 
							- #region Copyright notice and license
 
- // 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.
 
- #endregion
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using Grpc.Core.Utils;
 
- namespace Grpc.Core
 
- {
 
-     /// <summary>
 
-     /// A property of an <see cref="AuthContext"/>.
 
-     /// Note: experimental API that can change or be removed without any prior notice.
 
-     /// </summary>
 
-     public class AuthProperty
 
-     {
 
-         static readonly Encoding EncodingUTF8 = System.Text.Encoding.UTF8;
 
-         string name;
 
-         byte[] valueBytes;
 
-         Lazy<string> value;
 
-         private AuthProperty(string name, byte[] valueBytes)
 
-         {
 
-             this.name = GrpcPreconditions.CheckNotNull(name);
 
-             this.valueBytes = GrpcPreconditions.CheckNotNull(valueBytes);
 
-             this.value = new Lazy<string>(() => EncodingUTF8.GetString(this.valueBytes));
 
-         }
 
-         /// <summary>
 
-         /// Gets the name of the property.
 
-         /// </summary>
 
-         public string Name
 
-         {
 
-             get
 
-             {
 
-                 return name;
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Gets the string value of the property.
 
-         /// </summary>
 
-         public string Value
 
-         {
 
-             get
 
-             {
 
-                 return value.Value;
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Gets the binary value of the property.
 
-         /// </summary>
 
-         public byte[] ValueBytes
 
-         {
 
-             get
 
-             {
 
-                 var valueCopy = new byte[valueBytes.Length];
 
-                 Buffer.BlockCopy(valueBytes, 0, valueCopy, 0, valueBytes.Length);
 
-                 return valueCopy;
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Creates an instance of <c>AuthProperty</c>.
 
-         /// </summary>
 
-         /// <param name="name">the name</param>
 
-         /// <param name="valueBytes">the binary value of the property</param>
 
-         public static AuthProperty Create(string name, byte[] valueBytes)
 
-         {
 
-             GrpcPreconditions.CheckNotNull(valueBytes);
 
-             var valueCopy = new byte[valueBytes.Length];
 
-             Buffer.BlockCopy(valueBytes, 0, valueCopy, 0, valueBytes.Length);
 
-             return new AuthProperty(name, valueCopy);
 
-         }
 
-         /// <summary>
 
-         /// Gets the binary value of the property (without making a defensive copy).
 
-         /// </summary>
 
-         internal byte[] ValueBytesUnsafe
 
-         {
 
-             get
 
-             {
 
-                 return valueBytes;
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Creates and instance of <c>AuthProperty</c> without making a defensive copy of <c>valueBytes</c>.
 
-         /// </summary>
 
-         internal static AuthProperty CreateUnsafe(string name, byte[] valueBytes)
 
-         {
 
-             return new AuthProperty(name, valueBytes);
 
-         }
 
-     }
 
- }
 
 
  |