[yocto] [PATCH 1/2][Image Creator] Hob Cache for speed up switching

Ke Liping liping.ke at intel.com
Mon Jul 11 00:31:31 PDT 2011


From: Liping Ke <liping.ke at intel.com>

This patch is the centralized place for storing Hob attributes.
Most of informations in Prefs will be used when caching user-select
packages information. Those information will be the cache hash-key
which is useful in deciding whether the configuration combination
value has been cached or not

Signed-off-by: Liping Ke <liping.ke at intel.com>
---
 bitbake/lib/bb/ui/crumbs/hobeventhandler.py |    6 +++---
 bitbake/lib/bb/ui/crumbs/hobprefs.py        |    3 ++-
 bitbake/lib/bb/ui/hob.py                    |    6 ++++--
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
index fa79e0c..8c8d9e2 100644
--- a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
+++ b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
@@ -99,7 +99,7 @@ class HobHandler(gobject.GObject):
             args.extend(argument)
             self.server.runCommand(args)
 
-    def handle_event(self, event, running_build, pbar):
+    def handle_event(self, event, running_build, pbar, hobprefs):
         if not event:
 	    return
 
@@ -161,11 +161,11 @@ class HobHandler(gobject.GObject):
             pbar.set_fraction(1.0)
         return
 
-    def event_handle_idle_func (self, eventHandler, running_build, pbar):
+    def event_handle_idle_func (self, eventHandler, running_build, pbar, hobrefs):
         # Consume as many messages as we can in the time available to us
         event = eventHandler.getEvent()
         while event:
-            self.handle_event(event, running_build, pbar)
+            self.handle_event(event, running_build, pbar, hobrefs)
             event = eventHandler.getEvent()
         return True
 
diff --git a/bitbake/lib/bb/ui/crumbs/hobprefs.py b/bitbake/lib/bb/ui/crumbs/hobprefs.py
index f186410..05e8170 100644
--- a/bitbake/lib/bb/ui/crumbs/hobprefs.py
+++ b/bitbake/lib/bb/ui/crumbs/hobprefs.py
@@ -143,7 +143,7 @@ class HobPrefs(gtk.Dialog):
             glib.idle_add(self.handler.reload_data)
 
     def __init__(self, configurator, handler, curr_sdk_mach, curr_distro, pclass,
-                 cpu_cnt, pmake, bbthread, image_types):
+                 cpu_cnt, pmake, bbthread, image_types, curr_mach):
         """
         """
         gtk.Dialog.__init__(self, "Preferences", None,
@@ -159,6 +159,7 @@ class HobPrefs(gtk.Dialog):
         self.configurator = configurator
 
         self.curr_sdk_mach = curr_sdk_mach
+        self.curr_mach = curr_mach
         self.curr_distro = curr_distro
         self.curr_package_format = pclass
         self.curr_output_type = None
diff --git a/bitbake/lib/bb/ui/hob.py b/bitbake/lib/bb/ui/hob.py
index 06d936e..76cb294 100644
--- a/bitbake/lib/bb/ui/hob.py
+++ b/bitbake/lib/bb/ui/hob.py
@@ -160,6 +160,7 @@ class MainWindow (gtk.Window):
         mach = combo.get_active_text()
         if mach != self.curr_mach:
             self.curr_mach = mach
+            self.prefs.curr_mach = mach
             # Flush this straight to the file as MACHINE is changed
             # independently of other 'Preferences'
             self.configurator.setLocalConfVar('MACHINE', mach)
@@ -887,7 +888,7 @@ def main (server, eventHandler):
     pkg, sep, pclass = pclasses[0].rpartition("_")
 
     prefs = HobPrefs(configurator, handler, sdk_mach, distro, pclass, cpu_cnt,
-                     pmake, bbthread, image_types)
+                     pmake, bbthread, image_types, mach)
     layers = LayerEditor(configurator, None)
     window = MainWindow(taskmodel, handler, configurator, prefs, layers, mach)
     prefs.set_parent_window(window)
@@ -918,7 +919,8 @@ def main (server, eventHandler):
                          handler.event_handle_idle_func,
                          eventHandler,
                          window.build,
-                         window.progress)
+                         window.progress,
+                         prefs)
 
     try:
         gtk.main()
-- 
1.7.0.4




More information about the yocto mailing list