public AmoebaManager(string bitmapPath, string cachePath, BufferManager bufferManager) { _bitmapPath = bitmapPath; _cachePath = cachePath; _bufferManager = bufferManager; _clientManager = new ClientManager(_bufferManager); _serverManager = new ServerManager(_bufferManager); _bitmapManager = new BitmapManager(_bitmapPath, _bufferManager); _cacheManager = new CacheManager(_cachePath, _bitmapManager, _bufferManager); _connectionsManager = new ConnectionsManager(_clientManager, _serverManager, _cacheManager, _bufferManager); _downloadManager = new DownloadManager(_connectionsManager, _cacheManager, _bufferManager); _uploadManager = new UploadManager(_connectionsManager, _cacheManager, _bufferManager); _backgroundDownloadManager = new BackgroundDownloadManager(_connectionsManager, _cacheManager, _bufferManager); _backgroundUploadManager = new BackgroundUploadManager(_connectionsManager, _cacheManager, _bufferManager); _clientManager.CreateCapEvent = (object sender, string uri) => { if (_createCapEvent != null) { return _createCapEvent(this, uri); } return null; }; _serverManager.AcceptCapEvent = (object sender, out string uri) => { uri = null; if (_acceptCapEvent != null) { return _acceptCapEvent(this, out uri); } return null; }; _clientManager.CheckUriEvent = (object sender, string uri) => { if (_checkUriEvent != null) { return _checkUriEvent(this, uri); } return true; }; _serverManager.CheckUriEvent = (object sender, string uri) => { if (_checkUriEvent != null) { return _checkUriEvent(this, uri); } return true; }; }
public void Test_BitmapManager() { using (BitmapManager bitmapManager = new BitmapManager("bitmap", _bufferManager)) { bitmapManager.SetLength(1024 * 256); Random random_a, random_b; { var seed = _random.Next(); random_a = new Random(seed); random_b = new Random(seed); } { for (int i = 0; i < 1024; i++) { var p = random_a.Next(0, 1024 * 256); bitmapManager.Set(p, true); } for (int i = 0; i < 1024; i++) { var p = random_b.Next(0, 1024 * 256); Assert.IsTrue(bitmapManager.Get(p)); } { int count = 0; for (int i = 0; i < 1024 * 256; i++) { if (bitmapManager.Get(i)) count++; } Assert.IsTrue(count <= 1024); } } { for (int i = 0; i < 1024 * 256; i++) { bitmapManager.Set(i, true); } for (int i = 0; i < 1024; i++) { var p = random_a.Next(0, 1024 * 256); bitmapManager.Set(p, false); } for (int i = 0; i < 1024; i++) { var p = random_b.Next(0, 1024 * 256); Assert.IsTrue(!bitmapManager.Get(p)); } { int count = 0; for (int i = 0; i < 1024 * 256; i++) { if (!bitmapManager.Get(i)) count++; } Assert.IsTrue(count <= 1024); } } } }