/// <summary> /// Initializes memory manager /// </summary> /// <param name="databaseName">datbase name</param> public Manager(IRlmNetwork network, bool trackStats = false) { Network = network; bcSessionsToCreate = new BlockingCollection <Session>(); bcSessionsToUpdate = new BlockingCollection <Session>(); bcCasesQueue = new BlockingCollection <Case>(); rlmDb = new RlmDbMgr(network.RlmDBData, network.PersistData); rlmDbEnqueuer = new RlmObjectEnqueuer(); progressUpdater.Interval = 1000; progressUpdater.Elapsed += ProgressUpdater_Elapsed; if (trackStats) { GetRneuronTimes = new List <TimeSpan>(); RebuildCacheboxTimes = new List <TimeSpan>(); SwGetRneuron = new System.Diagnostics.Stopwatch(); SwRebuildCache = new System.Diagnostics.Stopwatch(); } MASTER_CASE_QUEUE.Enqueue(caseQueue = new Queue <Case>()); if (network.GPURneuronProcessor == null) { rneuronProcessor = new RlmRneuronGetter(this); } else { GPUMode = true; rneuronProcessor = network.GPURneuronProcessor; } }
/// <summary> /// Initializes memory manager /// </summary> /// <param name="databaseName">datbase name</param> public Manager(IRlmNetwork network, bool trackStats = false) { Network = network; rneuron_queue = new BlockingCollection <Rneuron>(); session_queue = new BlockingCollection <Session>(); savedSession_queue = new BlockingCollection <Session>(); solution_queue = new BlockingCollection <Solution>(); case_queue = new BlockingCollection <Case>(); rlmDb = new RlmDbMgr(network.DatabaseName); rlmDbEnqueuer = new RlmObjectEnqueuer(); ctSourceSessions = new CancellationTokenSource(); tokenSessions = ctSourceSessions.Token; ctSourceCases = new CancellationTokenSource(); tokenCases = ctSourceCases.Token; progressUpdater.Interval = 1000; progressUpdater.Elapsed += ProgressUpdater_Elapsed; if (trackStats) { GetRneuronTimes = new List <TimeSpan>(); RebuildCacheboxTimes = new List <TimeSpan>(); SwGetRneuron = new System.Diagnostics.Stopwatch(); SwRebuildCache = new System.Diagnostics.Stopwatch(); } MASTER_CASE_QUEUE.Enqueue(caseQueue = new Queue <Case>()); }
/// <summary> /// Initializes memory manager /// </summary> /// <param name="databaseName">datbase name</param> public Manager(IRlmNetwork network) { Network = network; rneuron_queue = new BlockingCollection <Rneuron>(); session_queue = new BlockingCollection <Session>(); savedSession_queue = new BlockingCollection <Session>(); solution_queue = new BlockingCollection <Solution>(); case_queue = new BlockingCollection <Case>(); rlmDb = new RlmDbMgr(network.DatabaseName); rlmDbEnqueuer = new RlmObjectEnqueuer(); ctSourceSessions = new CancellationTokenSource(); tokenSessions = ctSourceSessions.Token; ctSourceCases = new CancellationTokenSource(); tokenCases = ctSourceCases.Token; progressUpdater.Interval = 1000; progressUpdater.Elapsed += ProgressUpdater_Elapsed; }