File: middle.h

package info (click to toggle)
osm2pgsql 0.69%2Br20104-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 61,864 kB
  • ctags: 1,421
  • sloc: sql: 98,888; ansic: 6,609; php: 2,452; sh: 580; cpp: 527; makefile: 138
file content (46 lines) | stat: -rw-r--r-- 1,652 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* Common middle layer interface */

/* Each middle layer data store must provide methods for 
 * storing and retrieving node and way data.
 */

#ifndef MIDDLE_H
#define MIDDLE_H

#include "osmtypes.h"

struct keyval;
struct member;
struct output_options;

struct middle_t {
    int (*start)(const struct output_options *options);
    void (*stop)(void);
    void (*cleanup)(void);
    void (*analyze)(void);
    void (*end)(void);

    int (*nodes_set)(int id, double lat, double lon, struct keyval *tags);
    int (*nodes_get_list)(struct osmNode *out, int *nds, int nd_count);
    int (*nodes_delete)(int id);
    int (*node_changed)(int id);
//    int (*nodes_get)(struct osmNode *out, int id);

    int (*ways_set)(int id, int *nds, int nd_count, struct keyval *tags, int pending);
    int (*ways_get)(int id, struct keyval *tag_ptr, struct osmNode **node_ptr, int *count_ptr);
    int (*ways_done)(int id);
    int (*ways_delete)(int id);
    int (*way_changed)(int id);

    int (*relations_set)(int id, struct member *members, int member_count, struct keyval *tags);
//    int (*relations_get)(int id, struct member **members, int *member_count, struct keyval *tags);
    int (*relations_done)(int id);
    int (*relations_delete)(int id);
    int (*relation_changed)(int id);

//    void (*iterate_nodes)(int (*callback)(int id, struct keyval *tags, double node_lat, double node_lon));
    void (*iterate_ways)(int (*callback)(int id, struct keyval *tags, struct osmNode *nodes, int count, int exists));
    void (*iterate_relations)(int (*callback)(int id, struct member *, int member_count, struct keyval *rel_tags, int exists));
};

#endif