Diff of /trunk/src/osm.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 154 by harbaum, Tue Mar 31 06:31:53 2009 UTC revision 158 by harbaum, Fri Apr 10 11:13:26 2009 UTC
# Line 56  typedef struct tag_s { Line 56  typedef struct tag_s {
56    
57  typedef struct node_s {  typedef struct node_s {
58    item_id_t id;    item_id_t id;
59      item_id_t version;
60    pos_t pos;    pos_t pos;
61    lpos_t lpos;    lpos_t lpos;
62    user_t *user;    user_t *user;
# Line 85  typedef struct node_chain { Line 86  typedef struct node_chain {
86    
87  typedef struct way_s {  typedef struct way_s {
88    item_id_t id;    item_id_t id;
89      item_id_t version;
90      item_id_t changeset;
91    user_t *user;    user_t *user;
92    gboolean visible;    gboolean visible;
93    time_t time;    time_t time;
# Line 126  typedef struct way_chain { Line 129  typedef struct way_chain {
129    
130  typedef struct relation_s {  typedef struct relation_s {
131    item_id_t id;    item_id_t id;
132      item_id_t version;
133      item_id_t changeset;
134    user_t *user;    user_t *user;
135    gboolean visible;    gboolean visible;
136    time_t time;    time_t time;
# Line 148  typedef struct relation_chain_s { Line 153  typedef struct relation_chain_s {
153  /* the current hash table uses 16 bits. each table thus is */  /* the current hash table uses 16 bits. each table thus is */
154  /* 256 kbytes (2^16 * sizeof(void*)) in size */  /* 256 kbytes (2^16 * sizeof(void*)) in size */
155  #define ID2HASH(a) ((unsigned short)(a) ^ (unsigned short)((a)>>16))  #define ID2HASH(a) ((unsigned short)(a) ^ (unsigned short)((a)>>16))
   
156  typedef struct hash_item_s {  typedef struct hash_item_s {
157    union {    union {
158      node_t *node;      node_t *node;
# Line 173  typedef struct { Line 177  typedef struct {
177      node_t *node;      node_t *node;
178      way_t *way;      way_t *way;
179      relation_t *relation;      relation_t *relation;
180        item_id_t id;
181      void *ptr;      void *ptr;
182    };    };
183  } object_t;  } object_t;
184    
185  typedef struct member_s {  typedef struct member_s {
186    type_t type;    object_t object;
187    char   *role;    char   *role;
   
   union {  
     node_t *node;  
     way_t *way;  
     relation_t *relation;  
     void *ptr;  
     item_id_t id;  
   };  
   
188    struct member_s *next;    struct member_s *next;
189  } member_t;  } member_t;
190    
# Line 246  gboolean osm_is_creator_tag(tag_t *tag); Line 242  gboolean osm_is_creator_tag(tag_t *tag);
242  gboolean osm_tag_key_and_value_present(tag_t *haystack, tag_t *tag);  gboolean osm_tag_key_and_value_present(tag_t *haystack, tag_t *tag);
243  gboolean osm_tag_key_other_value_present(tag_t *haystack, tag_t *tag);  gboolean osm_tag_key_other_value_present(tag_t *haystack, tag_t *tag);
244    
245  char *osm_generate_xml_node(osm_t *osm, node_t *node);  char *osm_generate_xml_changeset(osm_t *osm, char *comment);
246  char *osm_generate_xml_way(osm_t *osm, way_t *way);  char *osm_generate_xml_node(osm_t *osm, item_id_t changeset, node_t *node);
247  char *osm_generate_xml_relation(osm_t *osm, relation_t *relation);  char *osm_generate_xml_way(osm_t *osm, item_id_t changeset, way_t *way);
248    char *osm_generate_xml_relation(osm_t *osm, item_id_t changeset,
249                                    relation_t *relation);
250    
251  node_t *osm_get_node_by_id(osm_t *osm, item_id_t id);  node_t *osm_get_node_by_id(osm_t *osm, item_id_t id);
252  way_t *osm_get_way_by_id(osm_t *osm, item_id_t id);  way_t *osm_get_way_by_id(osm_t *osm, item_id_t id);
# Line 288  void osm_way_rotate(way_t *way, gint off Line 286  void osm_way_rotate(way_t *way, gint off
286    
287  tag_t *osm_tags_copy(tag_t *tag, gboolean update_creator);  tag_t *osm_tags_copy(tag_t *tag, gboolean update_creator);
288    
 char *osm_type_string(type_t type);  
 char *osm_id_string(type_t type, void *object);  
 char *osm_object_string(type_t type, void *object);  
 tag_t *osm_object_get_tags(type_t type, void *object);  
   
289  relation_t *osm_relation_new(void);  relation_t *osm_relation_new(void);
290  void osm_relation_free(relation_t *relation);  void osm_relation_free(relation_t *relation);
291  void osm_relation_attach(osm_t *osm, relation_t *relation);  void osm_relation_attach(osm_t *osm, relation_t *relation);
# Line 300  void osm_relation_delete(osm_t *osm, rel Line 293  void osm_relation_delete(osm_t *osm, rel
293                           gboolean permanently);                           gboolean permanently);
294  gint osm_relation_members_num(relation_t *relation);  gint osm_relation_members_num(relation_t *relation);
295    
296    char *osm_object_type_string(object_t *object);
297    char *osm_object_id_string(object_t *object);
298    char *osm_object_string(object_t *object);
299    tag_t *osm_object_get_tags(object_t *object);
300  void osm_object_set_flags(object_t *map_item, int set, int clr);  void osm_object_set_flags(object_t *map_item, int set, int clr);
301    
302  #endif /* OSM_H */  #endif /* OSM_H */

Legend:
Removed from v.154  
changed lines
  Added in v.158