On 03/15/2010 03:31 PM, Anthony Liguori wrote:
On 03/11/2010 08:19 AM, Paul Brook wrote:
On 03/11/2010 06:57 AM, Paul Brook wrote:
+struct QEMUNotifier
+{
+    void (*notify)(QEMUNotifier *notifier);
+};
I suggest combining this with QEMUBH.
I take it your not opposed to converting QEMUBH to be a QEMUNotifier?
If so, I'm happy to do it.
It's unclear to me why you've invented a new thing in the first place.

It's a better approximation of the command pattern because the command is a single object as opposed to a tuple. Because the command is an object, you can also do things like binding. For instance:

typedef struct IONotifier
{
   Notifier parent;
   void (*notify)(IONotifier *notifier, int fd);
   int fd;
} IONotifier;

It's been a long day...

Which now gives you a notifier that has an fd bound to it's second argument (which is pretty useful for IO dispatch).

You can do this with a tuple representation, but it gets awkward. One could argue for formalizing the tuple as a struct but extending by nesting becomes more complicated. Also, for the most part, you already have a state for the command and embedding the object means less dynamic memory allocation and less code to handle that.

Regards,

Anthony Liguori


Regards,

Anthony Liguori


Reply via email to