public EngineAdapter(string name, EngineSettingsAdapter settings, ObjectPath path) { this.name = name; this.engine = new ClientEngine(settings.Settings); this.engineSettings = settings; this.path = path; DownloaderPath = path.ToString() + "/downloaders/{0}"; StoragePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); StoragePath = System.IO.Path.Combine(StoragePath, "monotorrent-dbus"); EnsurePath(StoragePath); StoragePath = System.IO.Path.Combine(StoragePath, string.Format("engine-{0}", name)); EnsurePath(StoragePath); downloaders = new Dictionary <ObjectPath, TorrentManagerAdapter> (new ObjectPathComparer()); torrents = new Dictionary <ObjectPath, TorrentAdapter> (); engine.StatsUpdate += delegate { StatsUpdateHandler h = StatsUpdate; if (h != null) { h(); } }; LoadState(); }
private ObjectPath NewEngineSettings() { ObjectPath path = new ObjectPath(string.Format(EngineSettingsPath, engineSettingsNumber++)); EngineSettingsAdapter adapter = new EngineSettingsAdapter(new EngineSettings(), path); TorrentService.Bus.Register(adapter.Path, adapter); engineSettings.Add(adapter.Path, adapter); return(adapter.Path); }