⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlrpc.h

📁 The Kannel Open Source WAP and SMS gateway works as both an SMS gateway, for implementing keyword b
💻 H
📖 第 1 页 / 共 2 页
字号:
/* Return type of i'th MethodCall/MethodResponse param: xr_scalar, xr_array or xr_struct * or -1 if no param */int xmlrpc_get_type_param(XMLRPCDocument *xrdoc, int i);/* Return content of i'th MethodCall/MethodResponse param:  * XMLRPCScalar if xr_scalar, List of XMLRPCValues if xr_array  * or Dict of XMLRPCValues if xr_struct (member names as keys) * or NULL if no param */void *xmlrpc_get_content_param(XMLRPCDocument *xrdoc, int i);/* Identify d_type of given XMLRPCDocument and add a scalar param.  * type is scalar type: xr_string, xr_int, xr_bool, xr_double, xr_date or xr_base64 * arg is pointer to value of given type: Octstr*, long*, int*, double*, Octstr* or Octstr* * respectively * Return 0 if ok or -1 if something wrong. */#define xmlrpc_add_scalar_param(xrdoc, type, arg) \            xmlrpc_doc_add_scalar(xrdoc, xr_undefined, type, arg)/* Identify d_type of given XMLRPCDocument and add XMLRPCValue param. * Return 0 if ok or -1 if something wrong. * NOTE: value is NOT duplicated  */#define xmlrpc_add_param(xrdoc, value) \            xmlrpc_doc_add_value(xrdoc, xr_undefined, value)/*** VALUES HANDLING ***//* Create a new XMLRPCValue object of undefined type */ XMLRPCValue *xmlrpc_value_create(void);/* Destroy given XMLRPCValue object */void xmlrpc_value_destroy(XMLRPCValue *val);/* Wrapper for destroy */void xmlrpc_value_destroy_item(void *val);/* Set type of XMLRPCValue: xr_scalar, xr_array or xr_struct  * Return 0 if ok or -1 if something wrong. */int xmlrpc_value_set_type(XMLRPCValue *val, int v_type);/* Set XMLRPCValue content: * XMLRPCScalar if xr_scalar, List of XMLRPCValues if xr_array  * or Dict of XMLRPCValues if xr_struct (member names as keys) * Return 0 if ok or -1 if something wrong. */int xmlrpc_value_set_content(XMLRPCValue *val, void *content);/* Return type of XMLRPCValue: xr_scalar, xr_array or xr_struct */int xmlrpc_value_get_type(XMLRPCValue *val);/* Return leaf type of XMLRPCValue:  * as above, but if value is xr_scalar return type of scalar */int xmlrpc_value_get_type_smart(XMLRPCValue *val);/* Return XMLRPCValue content: * XMLRPCScalar if xr_scalar, List of XMLRPCValues if xr_array  * or Dict of XMLRPCValues if xr_struct (member names as keys) * or NULL if something wrong. */void *xmlrpc_value_get_content(XMLRPCValue *val);/* Create Octstr (text/xml string) out of given XMLRPCValue. Caller * must free returned Octstr  */Octstr *xmlrpc_value_print(XMLRPCValue *val, int level);/*** STRUCT VALUE HANDLING ***//* Create a new XMLRPCValue object of xr_struct type.  * size is expected number of struct members */ XMLRPCValue *xmlrpc_create_struct_value(int size);/* Return -1 if not a struct or number of members */long xmlrpc_count_members(XMLRPCValue *xrstruct);/* Add member with given name and value to the struct */int xmlrpc_add_member(XMLRPCValue *xrstruct, Octstr *name, XMLRPCValue *value);/* Add member with given name and scalar value built with type and arg to the struct */int xmlrpc_add_member_scalar(XMLRPCValue *xrstruct, Octstr *name, int type, void *arg);/* Return value of member with given name or NULL if not found */XMLRPCValue *xmlrpc_get_member(XMLRPCValue *xrstruct, Octstr *name);/* Return type of member with given name (xr_scalar, xr_array or xr_struct) * or -1 if not found  */int xmlrpc_get_member_type(XMLRPCValue *xrstruct, Octstr *name);/* Return content of member with given name: * XMLRPCScalar if xr_scalar, List of XMLRPCValues if xr_array  * or Dict of XMLRPCValues if xr_struct (member names as keys) * or NULL if not found. */void *xmlrpc_get_member_content(XMLRPCValue *xrstruct, Octstr *name);/* Create Octstr (text/xml string) out of struct. Caller * must free returned Octstr. */Octstr *xmlrpc_print_struct(Dict *members,  int level);/*** ARRAY VALUE HANDLING ***//* Create a new XMLRPCValue object of xr_array type. */ XMLRPCValue *xmlrpc_create_array_value(void);/* Return -1 if not an array or number of elements */int xmlrpc_count_elements(XMLRPCValue *xrarray);/* Add XMLRPCValue element to the end of array */int xmlrpc_add_element(XMLRPCValue *xrarray, XMLRPCValue *value);/* Build scalar XMLRPCValue with type and arg,  *and add this element to the end of array  */int xmlrpc_add_element_scalar(XMLRPCValue *xrarray, int type, void *arg);/* Return value of i'th element in array or NULL if something wrong*/XMLRPCValue *xmlrpc_get_element(XMLRPCValue *xrarray, int i);/* Return type of i'th element in array (xr_scalar, xr_array or xr_struct) * or -1 if not found  */int xmlrpc_get_element_type(XMLRPCValue *xrarray, int i);/* Return content of i'th element: * XMLRPCScalar if xr_scalar, List of XMLRPCValues if xr_array  * or Dict of XMLRPCValues if xr_struct (member names as keys) * or NULL if not found. */void *xmlrpc_get_element_content(XMLRPCValue *xrarray, int i);/* Create Octstr (text/xml string) out of array. Caller * must free returned Octstr. */Octstr *xmlrpc_print_array(List *elements,  int level);/*** SCALAR HANDLING ***//* Create a new scalar of given type and value * (which must be in right format)  * type is scalar type: xr_string, xr_int, xr_bool, xr_double, xr_date or xr_base64 * arg is pointer to value of given type: Octstr*, long*, int*, double*, Octstr* or Octstr* * respectively * Return NULL if something wrong. */XMLRPCScalar *xmlrpc_scalar_create(int type, void *arg);/* Destroy XMLRPCScalar */void xmlrpc_scalar_destroy(XMLRPCScalar *scalar);/* Return type of scalar or -1 if scalar is NULL */int xmlrpc_scalar_get_type(XMLRPCScalar *scalar);/* Return content of scalar  * s_type is expected type of scalar */void *xmlrpc_scalar_get_content(XMLRPCScalar *scalar, int s_type);/* Create Octstr (text/xml string) out of scalar. Caller * must free returned Octstr. */Octstr *xmlrpc_scalar_print(XMLRPCScalar *scalar, int level);/* Wrappers to get scalar content of proper type  * NOTE: returned values are copies, caller must free returned Octstr */#define xmlrpc_scalar_get_double(scalar) \            *(double *)xmlrpc_scalar_get_content(scalar, xr_double)#define xmlrpc_scalar_get_int(scalar) \            *(long *)xmlrpc_scalar_get_content(scalar, xr_int)#define xmlrpc_scalar_get_bool(scalar) \            *(int *)xmlrpc_scalar_get_content(scalar, xr_bool)#define xmlrpc_scalar_get_date(scalar) \            octstr_duplicate((Octstr *)xmlrpc_scalar_get_content(scalar, xr_date))#define xmlrpc_scalar_get_string(scalar) \            octstr_duplicate((Octstr *)xmlrpc_scalar_get_content(scalar, xr_string))#define xmlrpc_scalar_get_base64(scalar) \            octstr_duplicate((Octstr *)xmlrpc_scalar_get_content(scalar, xr_base64))/*** SCALAR VALUE HANDLING ***//* Create XMLRPCScalar with type and arg,  * and then create XMLRPCValue with xr_scalar type and  * created XMLRPCScalar as content */XMLRPCValue *xmlrpc_create_scalar_value(int type, void *arg);/* As above, but scalar is xr_double type */XMLRPCValue *xmlrpc_create_double_value(double val);/* As above, but scalar is xr_int type */XMLRPCValue *xmlrpc_create_int_value(long val);/* As above, but scalar is xr_string type */XMLRPCValue *xmlrpc_create_string_value(Octstr *val);/* Return type of scalar in given XMLRPCValue */#define xmlrpc_get_scalar_value_type(value) \            xmlrpc_scalar_get_type(xmlrpc_value_get_content(value))            /* Wrappers to get scalar content of proper type from XMLRPCValue */#define xmlrpc_get_double_value(value) \            xmlrpc_scalar_get_double(xmlrpc_value_get_content(value))#define xmlrpc_get_int_value(value) \            xmlrpc_scalar_get_int(xmlrpc_value_get_content(value))#define xmlrpc_get_string_value(value) \            xmlrpc_scalar_get_string(xmlrpc_value_get_content(value))#define xmlrpc_get_base64_value(value) \            xmlrpc_scalar_get_base64(xmlrpc_value_get_content(value))/*** FAULT HANDLING ***//* Return 1 if XMLRPCDocument is fault MethodResponse */int xmlrpc_is_fault(XMLRPCDocument *response);/* Return faultcode from fault MethodResponse  * or -1 if XMLRPCDocument is not valid fault MethodResponse  */long xmlrpc_get_faultcode(XMLRPCDocument *faultresponse);/* Return faultstring from fault MethodResponse  * or NULL if XMLRPCDocument is not valid fault MethodResponse  */Octstr *xmlrpc_get_faultstring(XMLRPCDocument *faultresponse);/*** PARSE STATUS HANDLING***//*  * Check if parsing had any errors, return status code of parsing by * returning one of the following:  *   XMLRPC_COMPILE_OK, *   XMLRPC_XMLPARSE_FAILED, *   XMLRPC_PARSING_FAILED *   -1 if call has been NULL */int xmlrpc_parse_status(XMLRPCDocument *xrdoc);/* Return parser error string if parse_status != XMLRPC_COMPILE_OK *//* return NULL if no error occured or no error string was available */Octstr *xmlrpc_parse_error(XMLRPCDocument *xrdoc);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -