Both admin and remote protocols define their own types (remote_typed_param vs admin_typed_param). Because of the naming convention, admin typed params wouldn't be able to reuse the serialization/deserialization methods, which are tailored for use by remote protocol, even if those method were exported properly. In that case, introduce a new internal data type structurally copying both admin and remote protocols which, eventually, would allow serializer and deserializer to be used in a more generic way. --- src/util/virtypedparam.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/util/virtypedparam.h b/src/util/virtypedparam.h index 9bef204..7dd3a78 100644 --- a/src/util/virtypedparam.h +++ b/src/util/virtypedparam.h @@ -36,6 +36,30 @@ verify(!(VIR_TYPED_PARAM_LAST & VIR_TYPED_PARAM_MULTIPLE)); +typedef struct _virTypedParameterRemoteValue virTypedParameterRemoteValue; +typedef struct virTypedParameterRemoteValue *virTypedParameterRemoteValuePtr; + +struct _virTypedParameterRemoteValue { + int type; + union { + int i; /* exempt from syntax-check */ + unsigned int ui; + long long int l; + unsigned long long int ul; + double d; + char b; + char *s; + } remote_typed_param_value; +}; + +typedef struct _virTypedParameterRemote *virTypedParameterRemotePtr; + +struct _virTypedParameterRemote { + char *field; + virTypedParameterRemoteValue value; +}; + + int virTypedParamsValidate(virTypedParameterPtr params, int nparams, /* const char *name, int type ... */ ...) ATTRIBUTE_SENTINEL ATTRIBUTE_RETURN_CHECK; -- 2.4.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list