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); }
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> >()); }
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); } }