using System;
using System.Net.Http;
namespace FastGithub.ReverseProxy
{
    /// 
    /// SniContext扩展
    /// 
    static class SniContextExtensions
    {
        private static readonly HttpRequestOptionsKey key = new(nameof(SniContext));
        /// 
        /// 设置SniContext
        /// 
        /// 
        /// 
        public static void SetSniContext(this HttpRequestMessage httpRequestMessage, SniContext context)
        {
            httpRequestMessage.Options.Set(key, context);
        }
        /// 
        /// 获取SniContext
        /// 
        /// 
        /// 
        public static SniContext GetSniContext(this HttpRequestMessage httpRequestMessage)
        {
            if (httpRequestMessage.Options.TryGetValue(key, out var value))
            {
                return value;
            }
            throw new InvalidOperationException($"请先调用{nameof(SetSniContext)}");
        }
    }
}