On 11/22/19 1:54 PM, Richard W.M. Jones wrote:
However this does not implement can_cache, since that is not a
simple
boolean.
---
plugins/python/nbdkit-python-plugin.pod | 14 +++++++++-
plugins/python/python.c | 34 +++++++++++++++++++++++++
2 files changed, 47 insertions(+), 1 deletion(-)
+static int
+py_cache (void *handle, uint32_t count, uint64_t offset, uint32_t flags)
+{
+ PyObject *obj = handle;
+ PyObject *fn;
+ PyObject *r;
+
+ if (callback_defined ("cache", &fn)) {
+ PyErr_Clear ();
+
+ switch (py_api_version) {
+ case 1:
+ nbdkit_error ("%s can only be called when using api_version >= 2",
+ "cache");
+ return -1;
Why? The signature doesn't change. Yes, it's unusual to write an API
version 1 C plugin that provides a .cache callback, but it is not
impossible. Instead of erroring out, we could just always support this
function in both versions of Python plugin.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization:
qemu.org |
libvirt.org