]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
xmlrpc/event: Add ability to send pickled events to UI if requested
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 8 Jun 2011 12:13:55 +0000 (13:13 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 8 Jun 2011 12:13:55 +0000 (13:13 +0100)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
lib/bb/event.py
lib/bb/ui/uievent.py

index ef64f519fc0e0302acca39e8bae9f69dbb98b296..a3288b619b995af03c98cebfbd5258c931245731 100644 (file)
@@ -120,7 +120,10 @@ def fire_ui_handlers(event, d):
              # We use pickle here since it better handles object instances
              # which xmlrpc's marshaller does not. Events *must* be serializable
              # by pickle.
-            _ui_handlers[h].event.send(event)
+             if hasattr(_ui_handlers[h].event, "sendpickle"):
+                _ui_handlers[h].event.sendpickle((pickle.dumps(event)))
+             else:
+                _ui_handlers[h].event.send(event)
         except:
             errors.append(h)
     for h in errors:
index 2fef4e465982a7b5d60f15d962dab93ac4958838..0e738174e763eca0871a3f1a3d41a9f890104c86 100644 (file)
@@ -76,7 +76,7 @@ class BBUIEventQueue:
         self.host, self.port = server.socket.getsockname()
 
         server.register_function( self.system_quit, "event.quit" )
-        server.register_function( self.send_event, "event.send" )
+        server.register_function( self.send_event, "event.sendpickle" )
         server.socket.settimeout(1)
 
         self.EventHandle = self.BBServer.registerEventHandler(self.host, self.port)