提交 54f9cf80 编写于 作者: A Ata E Husain Bohra 提交者: Matthias Bolte

ESX: Add "Byte" datatype

Append "Byte" to set of predefined datatype objects.
Signed-off-by: NAta E Husain Bohra <ata.husain@hotmail.com>
上级 41cb8048
......@@ -1496,6 +1496,7 @@ def open_and_print(filename):
predefined_enums = ["Boolean"]
predefined_objects = ["AnyType",
"Byte",
"Int",
"Long",
"String",
......
......@@ -774,6 +774,9 @@ esxVI_Type_ToString(esxVI_Type type)
case esxVI_Type_String:
return "xsd:string";
case esxVI_Type_Byte:
return "xsd:byte";
case esxVI_Type_Short:
return "xsd:short";
......@@ -816,6 +819,8 @@ esxVI_Type_FromString(const char *type)
return esxVI_Type_AnyType;
} else if (STREQ(type, "xsd:string")) {
return esxVI_Type_String;
} else if (STREQ(type, "xsd:byte")) {
return esxVI_Type_Byte;
} else if (STREQ(type, "xsd:short")) {
return esxVI_Type_Short;
} else if (STREQ(type, "xsd:int")) {
......@@ -942,6 +947,10 @@ esxVI_AnyType_DeepCopy(esxVI_AnyType **dest, esxVI_AnyType *src)
(*dest)->string = (*dest)->value;
break;
case esxVI_Type_Byte:
(*dest)->int8 = src->int8;
break;
case esxVI_Type_Short:
(*dest)->int16 = src->int16;
break;
......@@ -1059,6 +1068,10 @@ esxVI_AnyType_Deserialize(xmlNodePtr node, esxVI_AnyType **anyType)
(*anyType)->string = (*anyType)->value;
break;
case esxVI_Type_Byte:
_DESERIALIZE_NUMBER(Byte, "xsd:byte", int8, INT8_MIN, INT8_MAX);
break;
case esxVI_Type_Short:
_DESERIALIZE_NUMBER(Short, "xsd:short", int16, INT16_MIN, INT16_MAX);
break;
......@@ -1298,6 +1311,50 @@ esxVI_String_DeserializeValue(xmlNodePtr node, char **value)
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* XSD: Byte
*/
/* esxVI_Byte_Alloc */
ESX_VI__TEMPLATE__ALLOC(Byte)
/* esxVI_Byte_Free */
ESX_VI__TEMPLATE__FREE(Byte,
{
esxVI_Byte_Free(&item->_next);
})
/* esxVI_Byte_Validate */
ESX_VI__TEMPLATE__VALIDATE(Byte,
{
})
/* esxVI_Byte_AppendToList */
ESX_VI__TEMPLATE__LIST__APPEND(Byte)
/* esxVI_Byte_DeepCopy */
ESX_VI__TEMPLATE__DEEP_COPY(Byte,
{
(*dest)->value = src->value;
})
/* esxVI_Byte_DeepCopyList */
ESX_VI__TEMPLATE__LIST__DEEP_COPY(Byte)
/* esxVI_Byte_Serialize */
ESX_VI__TEMPLATE__SERIALIZE(Byte,
{
virBufferAsprintf(output, "%d", (int)item->value);
})
/* esxVI_Byte_SerializeList */
ESX_VI__TEMPLATE__LIST__SERIALIZE(Byte)
/* esxVI_Byte_Deserialize */
ESX_VI__TEMPLATE__DESERIALIZE_NUMBER(Byte, "xsd:byte", INT8_MIN, INT8_MAX);
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* XSD: Int
*/
......
......@@ -38,6 +38,7 @@ typedef struct _esxVI_ManagedObject esxVI_ManagedObject;
typedef enum _esxVI_Boolean esxVI_Boolean;
typedef struct _esxVI_AnyType esxVI_AnyType;
typedef struct _esxVI_String esxVI_String;
typedef struct _esxVI_Byte esxVI_Byte;
typedef struct _esxVI_Int esxVI_Int;
typedef struct _esxVI_Long esxVI_Long;
typedef struct _esxVI_DateTime esxVI_DateTime;
......@@ -73,6 +74,7 @@ enum _esxVI_Type {
esxVI_Type_Boolean,
esxVI_Type_AnyType,
esxVI_Type_String,
esxVI_Type_Byte,
esxVI_Type_Short,
esxVI_Type_Int,
esxVI_Type_Long,
......@@ -146,6 +148,7 @@ struct _esxVI_AnyType {
union {
esxVI_Boolean boolean; /* optional */
char *string; /* optional */
int8_t int8; /* optional */
int16_t int16; /* optional */
int32_t int32; /* optional */
int64_t int64; /* optional */
......@@ -198,6 +201,31 @@ int esxVI_String_DeserializeValue(xmlNodePtr node, char **value);
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* XSD: Byte
*/
struct _esxVI_Byte {
esxVI_Byte *_next; /* optional */
esxVI_Type _type; /* required */
int8_t value; /* required */
};
int esxVI_Byte_Alloc(esxVI_Byte **number);
void esxVI_Byte_Free(esxVI_Byte **numberList);
int esxVI_Byte_Validate(esxVI_Byte *number);
int esxVI_Byte_AppendToList(esxVI_Byte **numberList, esxVI_Byte *number);
int esxVI_Byte_DeepCopy(esxVI_Byte **dest, esxVI_Byte *src);
int esxVI_Byte_DeepCopyList(esxVI_Byte **destList, esxVI_Byte *srcList);
int esxVI_Byte_Serialize(esxVI_Byte *number, const char *element,
virBufferPtr output);
int esxVI_Byte_SerializeList(esxVI_Byte *numberList, const char *element,
virBufferPtr output);
int esxVI_Byte_Deserialize(xmlNodePtr node, esxVI_Byte **number);
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* XSD: Int
*/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册