示例#1
0
文件: Uci.cs 项目: rudzen/ChessLib
        public Uci()
        {
            var policy = new StringBuilderPooledObjectPolicy();

            _pvPool = new DefaultObjectPool <StringBuilder>(policy, 128);
            O       = new Dictionary <string, IOption>();
        }
示例#2
0
        public override void ConfigureServices(ServiceConfigurationContext context)
        {
            base.ConfigureServices(context);

            Configure <MvcOptions>(options =>
            {
                options.EnableEndpointRouting = false;
            });

            Configure <CookiePolicyOptions>(options =>
            {
                options.MinimumSameSitePolicy = SameSiteMode.Unspecified;
                options.OnAppendCookie        = cookieContext =>
                                                CheckSameSite(cookieContext.Context, cookieContext.CookieOptions);
                options.OnDeleteCookie = cookieContext =>
                                         CheckSameSite(cookieContext.Context, cookieContext.CookieOptions);
            });


            context.Services.TryAddSingleton <ObjectPoolProvider, DefaultObjectPoolProvider>();

            context.Services.TryAddSingleton <ObjectPool <StringBuilder> >(serviceProvider =>
            {
                var provider = serviceProvider.GetRequiredService <ObjectPoolProvider>();
                var policy   = new StringBuilderPooledObjectPolicy();
                return(provider.Create(policy));
            });

            context.Services.AddWebEncoders();
        }
示例#3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public static void ConfigureServices(IServiceCollection services)
        {
            services.AddResponseCompression(options =>
            {
                options.Providers.Add <BrotliCompressionProvider>();
                options.Providers.Add <GzipCompressionProvider>();
                options.Providers.Add <CustomCompressionProvider>();
                options.MimeTypes =
                    ResponseCompressionDefaults.MimeTypes.Concat(
                        new[] { "image/svg+xml", "image/jpeg", "image/gif", "image/png", "application/javascript",
                                "application/json", "application/xml", "text/css",
                                "text/html", "text/json", "text/plain", "text/xml" });
            });
            services.AddResponseCaching(options =>
            {
                options.MaximumBodySize       = 64 * 1024 * 1024;
                options.UseCaseSensitivePaths = true;
            });
            services.AddDistributedMemoryCache();
            services.TryAddSingleton <ObjectPoolProvider, DefaultObjectPoolProvider>();

            services.TryAddSingleton(serviceProvider =>
            {
                var provider = serviceProvider.GetRequiredService <ObjectPoolProvider>();
                var policy   = new StringBuilderPooledObjectPolicy();
                return(provider.Create(policy));
            });
            services.AddRazorPages();
        }
示例#4
0
        static StringBuilderPool()
        {
            var provider = new DefaultObjectPoolProvider();
            var policy   = new StringBuilderPooledObjectPolicy
            {
                MaximumRetainedCapacity = MaximumBuilderSize,
            };

            Pool = provider.Create(policy);
        }
    /// <summary>
    /// Creates an <see cref="ObjectPool{T}"/> that pools <see cref="StringBuilder"/> instances.
    /// </summary>
    /// <param name="provider">The <see cref="ObjectPoolProvider"/>.</param>
    /// <param name="initialCapacity">The initial capacity to initialize <see cref="StringBuilder"/> instances with.</param>
    /// <param name="maximumRetainedCapacity">The maximum value for <see cref="StringBuilder.Capacity"/> that is allowed to be
    /// retained, when an instance is returned.</param>
    /// <returns>The <see cref="ObjectPool{T}"/>.</returns>
    public static ObjectPool <StringBuilder> CreateStringBuilderPool(
        this ObjectPoolProvider provider,
        int initialCapacity,
        int maximumRetainedCapacity)
    {
        var policy = new StringBuilderPooledObjectPolicy()
        {
            InitialCapacity         = initialCapacity,
            MaximumRetainedCapacity = maximumRetainedCapacity,
        };

        return(provider.Create <StringBuilder>(policy));
    }
    /// <summary>
    /// DI添加<c>ObjectPool&lt;StringBuilder&gt;</c>
    /// <seealso cref="ObjectPoolProvider"/>
    /// <seealso cref="StringBuilderPooledObjectPolicy"/>
    /// </summary>
    /// <param name="services">服务集合</param>
    /// <returns></returns>
    public static IServiceCollection AddStringBuilderPool(this IServiceCollection services)
    {
        services.TryAddSingleton <ObjectPoolProvider, DefaultObjectPoolProvider>();

        services.TryAddSingleton(serviceProvider =>
        {
            var provider = serviceProvider.GetRequiredService <ObjectPoolProvider>();
            var policy   = new StringBuilderPooledObjectPolicy();
            return(provider.Create(policy));
        });

        return(services);
    }
        public static ObjectPool<StringBuilder> CreateStringBuilderPool(
            this ObjectPoolProvider provider,
            int initialCapacity,
            int maximumRetainedCapacity)
        {
            var policy = new StringBuilderPooledObjectPolicy()
            {
                InitialCapacity = initialCapacity,
                MaximumRetainedCapacity = maximumRetainedCapacity,
            };

            return provider.Create<StringBuilder>(policy);
        }
        /// <summary>
        /// Adds the <see cref="IRequestExecutorResolver"/> and related services
        /// to the <see cref="IServiceCollection"/>.
        /// </summary>
        /// <param name="services">The <see cref="IServiceCollection"/>.</param>
        /// <returns>The <see cref="IServiceCollection"/>.</returns>
        public static IServiceCollection AddGraphQLCore(this IServiceCollection services)
        {
            if (services is null)
            {
                throw new ArgumentNullException(nameof(services));
            }

            services.AddOptions();

            services.TryAddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();

            services.TryAddSingleton<ObjectPool<StringBuilder>>(sp =>
            {
                ObjectPoolProvider provider = sp.GetRequiredService<ObjectPoolProvider>();
                var policy = new StringBuilderPooledObjectPolicy();
                return provider.Create(policy);
            });

            // core services
            services
                .TryAddRequestExecutorFactoryOptionsMonitor()
                .TryAddTypeConverter()
                .TryAddInputFormatter()
                .TryAddInputParser()
                .TryAddDefaultCaches()
                .TryAddDefaultDocumentHashProvider()
                .TryAddDefaultBatchDispatcher()
                .TryAddRequestContextAccessor()
                .TryAddDefaultDataLoaderRegistry()
                .TryAddIdSerializer()
                .TryAddDataLoaderParameterExpressionBuilder()
                .TryAddDataLoaderOptions();

            // pools
            services
                .TryAddResultPool()
                .TryAddResolverTaskPool()
                .TryAddOperationContextPool()
                .TryAddDataLoaderTaskCachePool();

            // global executor services
            services
                .TryAddVariableCoercion()
                .TryAddRequestExecutorResolver();

            // parser
            services.TryAddSingleton(ParserOptions.Default);

            return services;
        }
示例#9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="services"></param>
        public void Load(IServiceCollection services)
        {
            var configuration = services.BuildServiceProvider().GetRequiredService <IConfiguration>();

            services.Configure <RedisCacheSettings>(
                options => configuration.GetSection(nameof(RedisCacheSettings)).Bind(options));

            services.Configure <BasketRulesSettings>(
                options => configuration.GetSection(nameof(BasketRulesSettings)).Bind(options));

            services.Configure <LocalizedSettings>(options =>
                                                   options.ResourceName = LocalizedConstants.LocalizedResourcePath);

            services.Configure <MongoDbSettings>(options =>
                                                 configuration.GetSection(nameof(MongoDbSettings)).Bind(options));

            services.TryAddSingleton <ObjectPoolProvider, DefaultObjectPoolProvider>();
            services.TryAddSingleton(sp =>
            {
                var provider = sp.GetRequiredService <ObjectPoolProvider>();
                var policy   = new StringBuilderPooledObjectPolicy();
                return(provider.Create(policy));
            });
        }