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