public static IServiceCollection AddORMInfrastructure(this IServiceCollection services)
        {
            IContextHandler databasePool = new AsyncPool(150, "Database");
            var             database     = new DatabaseManager(databasePool);

            services
            .AddSingleton <ITableManager, TableManager>()
            .AddSingleton <IDatabaseManager>(database)
            .AddSingleton <IBackupManager, BackupManager>()
            .AddSingleton <ISaveManager, SaveManager>();

            return(services);
        }
Beispiel #2
0
        public FasterWrapper()
        {
            var logDirectory = "d:/FasterLogs";
            var logFileName  = Guid.NewGuid().ToString();
            var logSettings  = new LogSettings
            {
                LogDevice       = new ManagedLocalStorageDevice(Path.Combine(logDirectory, $"{logFileName}.log"), deleteOnClose: true, osReadBuffering: useOsReadBuffering),
                ObjectLogDevice = new ManagedLocalStorageDevice(Path.Combine(logDirectory, $"{logFileName}.log"), deleteOnClose: true, osReadBuffering: useOsReadBuffering),
                PageSizeBits    = 12,
                MemorySizeBits  = 13
            };

            Console.WriteLine($"    Using {logSettings.LogDevice.GetType()}");

            _store       = new FasterKV <Key, Value>(1L << 20, logSettings);
            _sessionPool = new AsyncPool <ClientSession <Key, Value, Value, Value, Empty, SimpleFunctions <Key, Value, Empty> > >(
                logSettings.LogDevice.ThrottleLimit,
                () => _store.For(new SimpleFunctions <Key, Value, Empty>()).NewSession <SimpleFunctions <Key, Value, Empty> >());
        }
Beispiel #3
0
 public AsyncPool <U> GetOrCreate <U>(AssetReference refer, string key = null, Func <IObservable <U> > createFunc = null, int maxCount = 1000) where U : Component
 {
     if (_pools == null)
     {
         _pools = new Dictionary <string, AsyncPool>();
     }
     if (key == null)
     {
         key = typeof(U).ToString();
     }
     if (_pools.ContainsKey(key))
     {
         return(_pools[key] as AsyncPool <U>);
     }
     else
     {
         var pool = new AsyncPool <U>(refer, createFunc, maxCount);
         pool.parent = this.transform;
         _pools.Add(key, pool);
         return(pool);
     }
 }