[banshee/moblin: 5/11] get the objects registered right



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]