source: subversion/applications/utils/export/osm2pgsql/middle.h @ 9267

Last change on this file since 9267 was 8944, checked in by martinvoosterhout, 12 years ago

Commit all the necessary changes to make saving and restoring of relations
work. This means that when a way that is part of a relation changes the
relation will be properly reconstructed.

File size: 1.6 KB
Line 
1/* Common middle layer interface */
2
3/* Each middle layer data store must provide methods for
4 * storing and retrieving node and way data.
5 */
6
7#ifndef MIDDLE_H
8#define MIDDLE_H
9
10struct keyval;
11struct member;
12struct output_options;
13
14struct middle_t {
15    int (*start)(const struct output_options *options);
16    void (*stop)(void);
17    void (*cleanup)(void);
18    void (*analyze)(void);
19    void (*end)(void);
20    int (*nodes_set)(int id, double lat, double lon, struct keyval *tags);
21    int (*nodes_get_list)(struct osmNode *out, int *nds, int nd_count);
22    int (*nodes_delete)(int id);
23    int (*node_changed)(int id);
24//    int (*nodes_get)(struct osmNode *out, int id);
25    int (*ways_set)(int id, int *nds, int nd_count, struct keyval *tags, int pending);
26    int (*ways_get)(int id, struct keyval *tag_ptr, struct osmNode **node_ptr, int *count_ptr);
27    int (*ways_done)(int id);
28    int (*ways_delete)(int id);
29    int (*way_changed)(int id);
30    int (*relations_set)(int id, struct member *members, int member_count, struct keyval *tags);
31    int (*relations_get)(int id, struct member **members, int *member_count, struct keyval *tags);
32    int (*relations_done)(int id);
33    int (*relations_delete)(int id);
34    int (*relation_changed)(int id);
35//    void (*iterate_nodes)(int (*callback)(int id, struct keyval *tags, double node_lat, double node_lon));
36    void (*iterate_ways)(int (*callback)(int id, struct keyval *tags, struct osmNode *nodes, int count, int exists));
37    void (*iterate_relations)(int (*callback)(int id, struct member *, int member_count, struct keyval *rel_tags, int exists));
38};
39
40#endif
Note: See TracBrowser for help on using the repository browser.