[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, debian, updated. upstream/0.9.5.5-717-g0f98819

Sebastian Krzyszkowiak seba.dos1 at gmail.com
Sat Aug 6 08:18:18 UTC 2011


The following commit has been merged in the debian branch:
commit b11cf37b9f5dc9b816452c1ad81288aa230c6e2d
Author: Sebastian Krzyszkowiak <seba.dos1 at gmail.com>
Date:   Tue Sep 1 22:08:48 2009 +0200

    opimd: Tasks: implement UnfinishedTasks signal and GetUnfinishedTasks method

diff --git a/framework/subsystems/opimd/docs/TODO b/framework/subsystems/opimd/docs/TODO
index 3a89d56..2ecf609 100644
--- a/framework/subsystems/opimd/docs/TODO
+++ b/framework/subsystems/opimd/docs/TODO
@@ -1,5 +1,4 @@
 Near future:
-* UnfinishedTasks
 * Initialized signal in source
 In mean-time:
 * write documentation
diff --git a/framework/subsystems/opimd/pimd_tasks.py b/framework/subsystems/opimd/pimd_tasks.py
index 467fe61..528a5fb 100644
--- a/framework/subsystems/opimd/pimd_tasks.py
+++ b/framework/subsystems/opimd/pimd_tasks.py
@@ -205,6 +205,7 @@ class TaskDomain(Domain, GenericDomain):
     query_manager = None
     _dbus_path = None
     Entry = None
+    _unfinished_tasks = None
 
     def __init__(self):
         """Creates a new TaskDomain instance"""
@@ -215,6 +216,7 @@ class TaskDomain(Domain, GenericDomain):
         self._entries = []
         self._dbus_path = _DBUS_PATH_NOTES
         self.query_manager = QueryManager(self._entries)
+        self._unfinished_tasks = 0
 
         # Initialize the D-Bus-Interface
         Domain.__init__( self, conn=busmap["opimd"], object_path=DBUS_PATH_BASE_FSO + '/' + self.name )
@@ -223,6 +225,16 @@ class TaskDomain(Domain, GenericDomain):
         self.interface = _DIN_NOTES
         self.path = _DBUS_PATH_NOTES
 
+    def register_entry(self, backend, task_data):
+        new_task_id = len(self._entries)
+        task_id = GenericDomain.register_entry(self, backend, task_data)
+        if task_id == new_task_id:
+            if task_data.has_key('Finished'):
+                if not task_data['Finished']:
+                    self._unfinished_tasks += 1
+                    self.UnfinishedTasks(self._unfinished_tasks)
+        return task_id
+
  
     #---------------------------------------------------------------------#
     # dbus methods and signals                                            #
@@ -235,6 +247,14 @@ class TaskDomain(Domain, GenericDomain):
     def NewTask(self, path):
         pass
 
+    @dbus_signal(_DIN_NOTES, "i")
+    def UnfinishedTasks(self, amount):
+        pass
+
+    @dbus_method(_DIN_NOTES, "", "i")
+    def GetUnfinishedTasks(self):
+        return self._unfinished_tasks
+
     @dbus_method(_DIN_NOTES, "a{sv}", "s")
     def Add(self, entry_data):
         """Adds a entry to the list, assigning it to the default backend and saving it
@@ -300,8 +320,16 @@ class TaskDomain(Domain, GenericDomain):
     def Delete(self, rel_path):
         num_id = int(rel_path[1:])
 
+        self.check_entry_id(num_id)
+
+        task = self._entries[num_id].get_fields(self._entries[num_id]._field_idx)
+        if not task['Finished']:
+            self._unfinished_tasks -= 1
+            self.UnfinishedTasks(self._unfinished_tasks)
+
         self.delete(num_id)
 
+
     def EntryUpdated(self, data, rel_path=None):
         self.TaskUpdated(data, rel_path=rel_path)
 
@@ -314,3 +342,22 @@ class TaskDomain(Domain, GenericDomain):
         num_id = int(rel_path[1:])
 
         self.update(num_id, data)
+
+    @dbus_method(_DIN_ENTRY, "a{sv}", "", rel_path_keyword="rel_path")
+    def Update(self, data, rel_path):
+        num_id = int(rel_path[1:])
+
+        self.check_entry_id(num_id)
+
+        taskif = self._entries[num_id]
+        task = taskif.get_fields(callif._task_idx)
+
+        if task.has_key('Finished') or data.has_key('Finished'):
+            if task['Finished'] and not data.get('Finished'):
+                self._unfinished_tasks -= 1
+                self.UnfinishedTasks(self._unfinished_tasks)
+            elif not task['Finished'] and data.get('Finished'):
+                self._unfinished_tasks += 1
+                self.UnfinishedTasks(self._unfinished_tasks)
+
+        self.update(num_id, data, entryif = taskif, entry = task)

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list