X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=generator%2Fgenerator_python.ml;h=ffd63daa6f8daae0f1c6cee73bf13f306e3bab0f;hb=b2f8627ab59daeb03f036dde6c66fb9da736950c;hp=f3a2a942cfb919d9fa5680b5c0dae92d32de9208;hpb=16da7589e91b0030fb5564553447f80b97c0b18c;p=libguestfs.git diff --git a/generator/generator_python.ml b/generator/generator_python.ml index f3a2a94..ffd63da 100644 --- a/generator/generator_python.ml +++ b/generator/generator_python.ml @@ -28,6 +28,7 @@ open Generator_optgroups open Generator_actions open Generator_structs open Generator_c +open Generator_events (* Generate Python C module. *) let rec generate_python_c () = @@ -455,6 +456,10 @@ free_strings (char **argv) pr "static PyMethodDef methods[] = {\n"; pr " { (char *) \"create\", py_guestfs_create, METH_VARARGS, NULL },\n"; pr " { (char *) \"close\", py_guestfs_close, METH_VARARGS, NULL },\n"; + pr " { (char *) \"set_event_callback\",\n"; + pr " py_guestfs_set_event_callback, METH_VARARGS, NULL },\n"; + pr " { (char *) \"delete_event_callback\",\n"; + pr " py_guestfs_delete_event_callback, METH_VARARGS, NULL },\n"; List.iter ( fun (name, _, _, _, _, _, _) -> pr " { (char *) \"%s\", py_guestfs_%s, METH_VARARGS, NULL },\n" @@ -531,6 +536,15 @@ logvols = g.lvs () import libguestfsmod +"; + + List.iter ( + fun (name, bitmask) -> + pr "EVENT_%s = 0x%x\n" (String.uppercase name) bitmask + ) events; + pr "\n"; + + pr "\ class GuestFS: \"\"\"Instances of this class are libguestfs API handles.\"\"\" @@ -541,6 +555,34 @@ class GuestFS: def __del__ (self): libguestfsmod.close (self._o) + def set_event_callback (self, cb, event_bitmask): + u\"\"\"Register an event callback. + + Register \"cb\" as a callback function for all of the + events in \"event_bitmask\". \"event_bitmask\" should be + one or more \"guestfs.EVENT_*\" flags logically or'd together. + + This function returns an event handle which can be used + to delete the callback (see \"delete_event_callback\"). + + The callback function receives 4 parameters: + + cb (event, event_handle, buf, array) + + \"event\" is one of the \"EVENT_*\" flags. \"buf\" is a + message buffer (only for some types of events). \"array\" + is an array of integers (only for some types of events). + + You should read the documentation for + \"guestfs_set_event_callback\" in guestfs(3) before using + this function. + \"\"\" + return libguestfsmod.set_event_callback (self._o, cb, event_bitmask) + + def delete_event_callback (self, event_handle): + u\"\"\"Delete an event callback.\"\"\" + libguestfsmod.delete_event_callback (self._o, event_handle) + "; List.iter (