navit 0.5.3-trunk
Loading...
Searching...
No Matches
xmlconfig.h
Go to the documentation of this file.
1
20#ifndef NAVIT_XMLCONFIG_H
21#define NAVIT_XMLCONFIG_H
22
23#include "navit.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#include "config.h"
30
31#include <glib.h>
32
33#ifndef USE_EZXML
34#ifdef HAVE_GLIB
35#define USE_EZXML 0
36#else
37#define USE_EZXML 1
38#endif
39#endif
40
41#if !USE_EZXML
42#define XML_ATTR_DISTANCE 1
43typedef GMarkupParseContext xml_context;
44#else
45#include "ezxml.h"
46#define XML_ATTR_DISTANCE 2
47#undef G_MARKUP_ERROR
48#undef G_MARKUP_ERROR_INVALID_CONTENT
49#undef G_MARKUP_ERROR_PARSE
50#undef G_MARKUP_ERROR_UNKNOWN_ELEMENT
51#define G_MARKUP_ERROR 0
52#define G_MARKUP_ERROR_INVALID_CONTENT 0
53#define G_MARKUP_ERROR_PARSE 0
54#define G_MARKUP_ERROR_UNKNOWN_ELEMENT 0
55typedef void * xml_context;
56#endif
57
58typedef void *(*object_func_new)(struct attr *parent, struct attr **attrs);
59typedef int (*object_func_get_attr)(void *, enum attr_type type, struct attr *attr, struct attr_iter *iter);
60typedef struct attr_iter *(*object_func_iter_new)(void *);
61typedef void (*object_func_iter_destroy)(struct attr_iter *);
62typedef int (*object_func_set_attr)(void *, struct attr *attr);
63typedef int (*object_func_add_attr)(void *, struct attr *attr);
64typedef int (*object_func_remove_attr)(void *, struct attr *attr);
65typedef int (*object_func_init)(void *);
66typedef void (*object_func_destroy)(void *);
67typedef void *(*object_func_dup)(void *);
68typedef void *(*object_func_ref)(void *);
69typedef void *(*object_func_unref)(void *);
70
71
86 void *(*create)(struct attr *parent, struct attr **attrs);
87 int (*get_attr)(void *, enum attr_type type, struct attr *attr, struct attr_iter *iter);
90 struct attr_iter *(*iter_new)(void *);
93 void (*iter_destroy)(struct attr_iter *);
96 int (*set_attr)(void *, struct attr *attr);
99 int (*add_attr)(void *, struct attr *attr);
102 int (*remove_attr)(void *, struct attr *attr);
105 int (*init)(void *);
107 void (*destroy)(void *);
110 void *(*dup)(void *);
111 void *(*ref)(void *);
114 void *(*unref)(void *);
117};
118
122
123#define HAS_OBJECT_FUNC(x) ((x) == attr_map || (x) == attr_mapset || (x) == attr_navit || (x) == attr_osd || (x) == attr_trackingo || (x) == attr_vehicle || (x) == attr_maps || (x) == attr_layout || (x) == attr_roadprofile || (x) == attr_vehicleprofile || (x) == attr_layer || (x) == attr_config || (x) == attr_profile_option || (x) == attr_script || (x) == attr_log || (x) == attr_speech || (x) == attr_navigation || (x) == attr_route || (x) == attr_traffic)
124
127};
128
129int navit_object_set_methods(void *in, int in_size, void *out, int out_size);
130struct navit_object *navit_object_new(struct attr **attrs, struct object_func *func, int size);
131struct navit_object *navit_object_ref(struct navit_object *obj);
132void* navit_object_unref(struct navit_object *obj);
133struct attr_iter * navit_object_attr_iter_new(void * unused);
135int navit_object_get_attr(struct navit_object *obj, enum attr_type type, struct attr *attr, struct attr_iter *iter);
136void navit_object_callbacks(struct navit_object *obj, struct attr *attr);
137int navit_object_set_attr(struct navit_object *obj, struct attr *attr);
138int navit_object_add_attr(struct navit_object *obj, struct attr *attr);
139int navit_object_remove_attr(struct navit_object *obj, struct attr *attr);
140void navit_object_destroy(struct navit_object *obj);
141
142typedef GError xmlerror;
143
144/* prototypes */
145enum attr_type;
147int xml_parse_file(char *filename, void *data,
148 void (*start)(xml_context *, const char *, const char **, const char **, void *, GError **),
149 void (*end)(xml_context *, const char *, void *, GError **),
150 void (*text)(xml_context *, const char *, gsize, void *, GError **));
151int xml_parse_text(const char *document, void *data, void (*start)(xml_context *, const char *, const char **,
152 const char **, void *, GError **), void (*end)(xml_context *, const char *, void *, GError **),
153 void (*text)(xml_context*, const char *, gsize, void *, GError **));
154gboolean config_load(const char *filename, xmlerror **error);
155//static void xinclude(GMarkupParseContext *context, const gchar **attribute_names, const gchar **attribute_values, struct xmldocument *doc_old, xmlerror **error);
156
157/* end of prototypes */
158
159#ifdef __cplusplus
160}
161#endif
162
163#endif
attr_type
Definition attr_type_def.h:11
error
Definition command.c:94
struct object_func config_func
Definition config_.c:149
char data
Definition garmin_img.c:2
char filename[8]
Definition garmin_img.c:1
char type[3]
Definition garmin_img.c:2
int size
Definition garmin_img.c:3
struct object_func navit_func
Definition navit.c:210
struct object_func layer_func
Definition layout.c:715
struct object_func layout_func
Definition layout.c:698
struct object_func log_func
Definition log.c:541
struct object_func map_func
Definition map.c:674
struct object_func maps_func
Definition maps.c:87
struct object_func mapset_func
Definition mapset.c:381
struct object_func navigation_func
Definition navigation.c:4328
#define NAVIT_OBJECT
Definition navit.h:23
struct object_func osd_func
Definition osd.c:465
struct object_func profile_option_func
Definition profile_option.c:43
struct object_func roadprofile_func
Definition roadprofile.c:99
struct object_func route_func
Definition route.c:4391
struct object_func script_func
Definition script.c:90
struct object_func speech_func
Definition speech.c:139
Definition config_.c:47
void * iter
Definition config_.c:48
Definition attr.h:136
struct attr * attrs
Definition attr.h:192
Definition xmlconfig.h:125
Basic functions for Navit objects.
Definition xmlconfig.h:84
void(* iter_destroy)(struct attr_iter *)
Definition xmlconfig.h:93
int(* add_attr)(void *, struct attr *attr)
Definition xmlconfig.h:99
int(* get_attr)(void *, enum attr_type type, struct attr *attr, struct attr_iter *iter)
Definition xmlconfig.h:87
int(* remove_attr)(void *, struct attr *attr)
Definition xmlconfig.h:102
void(* destroy)(void *)
Definition xmlconfig.h:107
enum attr_type type
Definition xmlconfig.h:85
int(* set_attr)(void *, struct attr *attr)
Definition xmlconfig.h:96
int(* init)(void *)
Definition xmlconfig.h:105
Definition gpx2navit_txt.h:51
struct object_func tracking_func
Definition track.c:43
struct object_func vehicle_func
Definition vehicle.c:82
struct object_func vehicleprofile_func
Definition vehicleprofile.c:284
int navit_object_set_attr(struct navit_object *obj, struct attr *attr)
Definition xmlconfig.c:1370
struct object_func * object_func_lookup(enum attr_type type)
Definition xmlconfig.c:248
int navit_object_remove_attr(struct navit_object *obj, struct attr *attr)
Definition xmlconfig.c:1399
void(* object_func_iter_destroy)(struct attr_iter *)
Definition xmlconfig.h:61
int(* object_func_remove_attr)(void *, struct attr *attr)
Definition xmlconfig.h:64
gboolean config_load(const char *filename, xmlerror **error)
Definition xmlconfig.c:1259
int navit_object_get_attr(struct navit_object *obj, enum attr_type type, struct attr *attr, struct attr_iter *iter)
Generic get function.
Definition xmlconfig.c:1361
struct navit_object * navit_object_new(struct attr **attrs, struct object_func *func, int size)
Definition xmlconfig.c:1298
void navit_object_callbacks(struct navit_object *obj, struct attr *attr)
Definition xmlconfig.c:1365
int(* object_func_init)(void *)
Definition xmlconfig.h:65
int navit_object_set_methods(void *in, int in_size, void *out, int out_size)
Definition xmlconfig.c:1283
void navit_object_attr_iter_destroy(struct attr_iter *iter)
Definition xmlconfig.c:1332
struct attr_iter * navit_object_attr_iter_new(void *unused)
Definition xmlconfig.c:1328
void * xml_context
Definition xmlconfig.h:55
void * navit_object_unref(struct navit_object *obj)
Definition xmlconfig.c:1313
int xml_parse_text(const char *document, void *data, void(*start)(xml_context *, const char *, const char **, const char **, void *, GError **), void(*end)(xml_context *, const char *, void *, GError **), void(*text)(xml_context *, const char *, gsize, void *, GError **))
Parses XML text.
Definition xmlconfig.c:1111
int navit_object_add_attr(struct navit_object *obj, struct attr *attr)
Definition xmlconfig.c:1377
int(* object_func_add_attr)(void *, struct attr *attr)
Definition xmlconfig.h:63
struct object_func map_func mapset_func navit_func osd_func tracking_func vehicle_func maps_func layout_func roadprofile_func vehicleprofile_func layer_func config_func profile_option_func script_func log_func speech_func navigation_func route_func traffic_func
Definition traffic.c:5958
void(* object_func_destroy)(void *)
Definition xmlconfig.h:66
struct navit_object * navit_object_ref(struct navit_object *obj)
Definition xmlconfig.c:1307
int(* object_func_set_attr)(void *, struct attr *attr)
Definition xmlconfig.h:62
GError xmlerror
Definition xmlconfig.h:142
int(* object_func_get_attr)(void *, enum attr_type type, struct attr *attr, struct attr_iter *iter)
Definition xmlconfig.h:59
void navit_object_destroy(struct navit_object *obj)
Definition xmlconfig.c:1413
int xml_parse_file(char *filename, void *data, void(*start)(xml_context *, const char *, const char **, const char **, void *, GError **), void(*end)(xml_context *, const char *, void *, GError **), void(*text)(xml_context *, const char *, gsize, void *, GError **))
Parses an XML file.
Definition xmlconfig.c:1063