]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: Introduce virTypedParameterRemote datatype
authorErik Skultety <eskultet@redhat.com>
Tue, 2 Feb 2016 14:33:30 +0000 (15:33 +0100)
committerErik Skultety <eskultet@redhat.com>
Wed, 3 Feb 2016 14:46:45 +0000 (15:46 +0100)
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

index 9bef2041db9b68ed307bb1d44531cb49bb0c8106..7dd3a789024a1ed01f9be4398cce2858f5c45b9f 100644 (file)
 
 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;