Пример #1
0
 /// <summary>
 /// Initializes a new EffectiveHttpClient with a client build strategy
 /// </summary>
 /// <param name="buildStrategy">client build strategy</param>
 /// <param name="renewStrategy">client renew strategy</param>
 public EffectiveHttpClient(HttpClientBuildStrategy buildStrategy, IRenewStrategy renewStrategy)
     : base(
         buildStrategy.BaseAddress.ToString().ToLowerInvariant(),
         buildStrategy,
         renewStrategy)
 {
 }
Пример #2
0
        /// <summary>
        /// Get a leasable based off the given key, or create a new leasable
        /// </summary>
        /// <param name="key">the key to reuse</param>
        /// <param name="buildStrategy">build strategy to initialize a new leasable</param>
        /// <returns>An auto renew leasable</returns>
        public AutoRenewLeasable <TData> GetLeasable(
            TKey key,
            IBuildStrategy <TData> buildStrategy,
            IRenewStrategy renewStrategy)
        {
            if (key == null)
            {
                throw new ArgumentNullException(nameof(key));
            }

            if (buildStrategy == null)
            {
                throw new ArgumentNullException(nameof(buildStrategy));
            }

            if (renewStrategy == null)
            {
                throw new ArgumentNullException(nameof(renewStrategy));
            }

            // Thread safe GetOrAdd
            var leasable = this.leasables.GetOrAdd(key, x => new AutoRenewLeasable <TData>(buildStrategy, renewStrategy));

            return(leasable);
        }
        /// <summary>
        /// Initializing a new lease with the given data object
        /// </summary>
        /// <param name="buildStrategy">build strategy</param>
        /// <param name="renewStrategy">build strategy</param>
        public AutoRenewLeasable(IBuildStrategy <T> buildStrategy, IRenewStrategy renewStrategy)
        {
            if (buildStrategy == null)
            {
                throw new ArgumentNullException(nameof(buildStrategy));
            }

            if (renewStrategy == null)
            {
                throw new ArgumentNullException(nameof(renewStrategy));
            }

            this.buildStrategy = buildStrategy;
            this.renewStrategy = renewStrategy;
        }