00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef __XCAP_CLIENT_H
00027 #define __XCAP_CLIENT_H
00028
00029 #include <cds/sstr.h>
00030 #include <xcap/xcap_result_codes.h>
00031
00032 typedef struct {
00033
00034 str_t xcap_root;
00036 str_t auth_user;
00038 str_t auth_pass;
00042 int enable_unverified_ssl_peer;
00043 } xcap_query_params_t;
00044
00045 typedef enum {
00046 xcap_doc_pres_rules,
00047 xcap_doc_im_rules,
00048 xcap_doc_rls_services,
00049 xcap_doc_resource_lists
00050 } xcap_document_type_t;
00051
00052 char *xcap_uri_for_users_document(xcap_document_type_t doc_type,
00053 const str_t *username,
00054 const str_t*filename,
00055 xcap_query_params_t *params);
00056
00057 char *xcap_uri_for_global_document(xcap_document_type_t doc_type,
00058 const str_t *filename,
00059 xcap_query_params_t *params);
00060
00064
00065 int xcap_query(const char *uri, xcap_query_params_t *params,
00066 char **buf, int *bsize);
00067
00068 typedef int (*xcap_query_func)(const char *uri,
00069 xcap_query_params_t *params,
00070 char **buf, int *bsize);
00071
00072 void free_xcap_params_content(xcap_query_params_t *params);
00073 int dup_xcap_params(xcap_query_params_t *dst, xcap_query_params_t *src);
00074
00075
00076
00077 int get_inline_xcap_buf_len(xcap_query_params_t *params);
00078
00079
00080 int dup_xcap_params_inline(xcap_query_params_t *dst, xcap_query_params_t *src, char *data_buffer);
00081
00082 int str2xcap_params(xcap_query_params_t *dst, const str_t *src);
00083 int xcap_params2str(str_t *dst, xcap_query_params_t *src);
00084
00085 #endif