pdtree.h
Go to the documentation of this file.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
00027
00028 #ifndef _PDTREE_H_
00029 #define _PDTREE_H_
00030
00031 #include "../../str.h"
00032
00033 typedef struct _pdt_node
00034 {
00035 str domain;
00036 struct _pdt_node *child;
00037 } pdt_node_t;
00038
00039 #define PDT_MAX_DEPTH 32
00040
00041 #define PDT_NODE_SIZE pdt_char_list.len
00042
00043 typedef struct _pdt_tree
00044 {
00045 str sdomain;
00046 pdt_node_t *head;
00047
00048 struct _pdt_tree *next;
00049 } pdt_tree_t;
00050
00051
00052
00053 int add_to_tree(pdt_tree_t *pt, str *code, str *domain);
00054 int pdt_add_to_tree(pdt_tree_t **dpt, str* sdomain, str *code, str *domain);
00055
00056 pdt_tree_t* pdt_get_tree(pdt_tree_t *pl, str *sdomain);
00057
00058 str* get_domain(pdt_tree_t *pt, str *code, int *plen);
00059 str* pdt_get_domain(pdt_tree_t *pt, str* sdomain, str *code, int *plen);
00060
00061 pdt_tree_t* pdt_init_tree(str* sdomain);
00062 void pdt_free_tree(pdt_tree_t *pt);
00063 int pdt_print_tree(pdt_tree_t *pt);
00064
00065 int pdt_check_pd(pdt_tree_t *pt, str* sdomain, str *sp, str *sd);
00066
00067
00068 #define strpos(s,c) (strchr(s,c)-s)
00069
00070 #endif
00071