[banshee/moblin: 5/11] get the objects registered right
- From: Michael Meeks <michael src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [banshee/moblin: 5/11] get the objects registered right
- Date: Mon, 10 Aug 2009 20:35:12 +0000 (UTC)
commit 719c23e835c395819f04adb6e60ca32ba3a802d4
Author: Michael Meeks <michael meeks novell com>
Date: Fri Aug 7 15:30:16 2009 +0100
get the objects registered right
.../Banshee.MoblinBackend/MoblinBognor.cs | 59 ++++++++++++++++----
.../Banshee.MoblinBackend/MoblinService.cs | 13 ++--
2 files changed, 54 insertions(+), 18 deletions(-)
---
diff --git a/src/Backends/Banshee.Moblin/Banshee.MoblinBackend/MoblinBognor.cs b/src/Backends/Banshee.Moblin/Banshee.MoblinBackend/MoblinBognor.cs
index febb5e6..943c901 100644
--- a/src/Backends/Banshee.Moblin/Banshee.MoblinBackend/MoblinBognor.cs
+++ b/src/Backends/Banshee.Moblin/Banshee.MoblinBackend/MoblinBognor.cs
@@ -38,32 +38,67 @@ using org.moblin.BognorRegis;
namespace Banshee.MoblinBackend.BognorRegis
{
- // ... tried to use DBusExportable - and just ended up
- // with an identical service and path-set to Banshee
- // [DBusExportable (ServiceName = "BognorQueue")]
- public class Queue : /* IDBusExportable */ IQueue, IDisposable
- {
- public static void Init()
+ [DBusExportable (ServiceName = "BognorQueue")]
+ public class QueueManager : IDBusExportable, IQueueManager, IDisposable
+ {
+ // Lame impl. for now.
+ Queue local_queue;
+
+ public static IDisposable Init()
+ {
+ return new QueueManager();
+ }
+ string IService.ServiceName {
+ get { return "BognorQueue"; }
+ }
+ IDBusExportable IDBusExportable.Parent {
+ get { return null; }
+ }
+ public QueueManager()
{
- Console.WriteLine ("Create queue");
- new Queue();
+ ServiceManager.DBusServiceManager.RegisterObject (this);
+ local_queue = new Queue(this, "local_queue");
}
+ public void Dispose ()
+ {
+ ServiceManager.DBusServiceManager.UnregisterObject (this);
+ local_queue.Dispose();
+ local_queue = null;
+ }
+ public List<string> ListQueues()
+ {
+ var list = new List<string>();
+ list.Add ("local_queue");
+ return list;
+ }
+ public event QueueHandler QueueCreated;
+ public event QueueHandler QueueDestroyed;
+ }
+
+ [DBusExportable (ServiceName = "BognorQueue")]
+ public class Queue : IDBusExportable, IQueue, IDisposable
+ {
+ string serviceName;
+ QueueManager mgr;
- public Queue()
+ public Queue (QueueManager _mgr, string name)
{
- DBusConnection.Connect ("BognorQueue");
+ serviceName = name;
+ mgr = _mgr;
+ ServiceManager.DBusServiceManager.RegisterObject (this);
}
IDBusExportable IDBusExportable.Parent {
- get { return null; }
+ get { return mgr; }
}
string IService.ServiceName {
- get { return "BognorQueue"; }
+ get { return serviceName; }
}
public void Dispose ()
{
+ ServiceManager.DBusServiceManager.UnregisterObject (this);
}
// methods
diff --git a/src/Backends/Banshee.Moblin/Banshee.MoblinBackend/MoblinService.cs b/src/Backends/Banshee.Moblin/Banshee.MoblinBackend/MoblinService.cs
index 349f28b..62b523f 100644
--- a/src/Backends/Banshee.Moblin/Banshee.MoblinBackend/MoblinService.cs
+++ b/src/Backends/Banshee.Moblin/Banshee.MoblinBackend/MoblinService.cs
@@ -38,22 +38,23 @@ namespace Banshee.MoblinBackend
{
public class MoblinService : IExtensionService, IDisposable
{
+ IDisposable queue;
+
public MoblinService ()
{
+ queue = null;
}
public void Initialize ()
{
- // ServiceManager.PlayerEngine.ConnectEvent
- // (UpdateRecentFilesHandler, PlayerEvent.StateChange);
- Console.WriteLine ("Init MoblinBackend");
- BognorRegis.Queue.Init ();
+ Console.WriteLine ("Init MoblinBackend");
+ queue = BognorRegis.QueueManager.Init ();
}
public void Dispose ()
{
- // ServiceManager.PlayerEngine.DisconnectEvent
- // (UpdateRecentFilesHandler);
+ queue.Dispose();
+ queue = null;
}
string IService.ServiceName {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]