00001
00023 #ifndef ROXML_INT_H
00024 #define ROXML_INT_H
00025
00031 #define ROXML_INT
00032
00033 #include <stdio.h>
00034 #include <stdlib.h>
00035 #include <string.h>
00036 #include <pthread.h>
00037
00038 #include "roxml-defines.h"
00039 #include "roxml-types.h"
00040 #include "roxml.h"
00041
00049 void ROXML_INT roxml_free_node (node_t *n);
00050
00060 node_t* ROXML_INT roxml_create_node (int pos, void * src, int type);
00061
00070 void ROXML_INT roxml_del_tree (node_t *n);
00071
00080 void ROXML_INT roxml_close_node (node_t *n, node_t *close);
00081
00094 node_t* ROXML_INT roxml_load (node_t *current_node, FILE *file, char *buffer);
00095
00104 node_t * ROXML_INT roxml_parent_node (node_t *parent, node_t *n);
00105
00115 void ROXML_INT roxml_parent_node_at (node_t *parent, node_t * n, int position);
00116
00126 void * ROXML_INT roxml_malloc (int size, int num, int type);
00127
00137 xpath_node_t * ROXML_INT roxml_set_axes (xpath_node_t *node, char *axes, int *offset);
00138
00148 int ROXML_INT roxml_parse_xpath (char *path, xpath_node_t ** xpath, int context);
00149
00157 void ROXML_INT roxml_free_xcond (xpath_cond_t *xcond);
00158
00167 void ROXML_INT roxml_free_xpath (xpath_node_t *xpath, int nb);
00168
00178 int ROXML_INT roxml_double_cmp (double a, double b, int op);
00179
00189 double ROXML_INT roxml_double_oper(double a, double b, int op);
00190
00199 int ROXML_INT roxml_validate_predicat (xpath_node_t *xn, node_t *candidat);
00200
00208 int ROXML_INT roxml_request_id (node_t *root);
00209
00220 void ROXML_INT roxml_release_id (node_t *root, node_t **pool, int pool_len, int req_id);
00221
00232 int ROXML_INT roxml_add_to_pool (node_t *root, node_t *n, int req_id);
00233
00247 int ROXML_INT roxml_validate_axes (node_t *root, node_t *candidat, node_t ***ans, int *nb, int *max, xpath_node_t *xn, int req_id);
00248
00263 void ROXML_INT roxml_check_node (xpath_node_t *xp, node_t *root, node_t *context, node_t ***ans, int *nb, int *max, int ignore, int req_id);
00264
00276 void ROXML_INT roxml_print_space (FILE *f, char ** buf, int * offset, int * len, int lvl);
00277
00289 void ROXML_INT roxml_write_string (char ** buf, FILE * f, char * str, int *offset, int * len);
00290
00304 void ROXML_INT roxml_write_node (node_t * n, FILE *f, char * buf, int human, int lvl, int *offset, int *len);
00305
00313 void ROXML_INT roxml_del_arg_node (node_t * n);
00314
00322 void ROXML_INT roxml_del_txt_node (node_t * n);
00323
00331 void ROXML_INT roxml_del_std_node (node_t * n);
00332
00341 void ROXML_INT roxml_set_type (node_t * n, int type);
00342
00350 int ROXML_INT roxml_get_node_internal_position(node_t *n);
00351
00362 void ROXML_INT roxml_compute_and(node_t * root, node_t **node_set, int *count, int cur_req_id, int prev_req_id);
00363
00375 void ROXML_INT roxml_compute_or(node_t * root, node_t **node_set, int *count, int req_id, int glob_id);
00376
00386 void ROXML_INT roxml_del_from_pool(node_t * root, node_t *n, int req_id);
00387
00397 int ROXML_INT roxml_in_pool(node_t * root, node_t *n, int req_id);
00398
00410 node_t ** ROXML_INT roxml_exec_xpath(node_t *root, node_t *n, xpath_node_t *xpath, int index, int * count);
00411
00420 void ROXML_INT roxml_process_begin_node(roxml_load_ctx_t *context, int position);
00421
00422 #ifdef __DEBUG
00423 extern unsigned int _nb_node;
00424 extern unsigned int _nb_attr;
00425 extern unsigned int _nb_text;
00426 #endif
00427
00428 extern memory_cell_t head_cell;
00429
00430 #endif
00431