pbf_parser 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -33,11 +33,11 @@ static char *parse_binary_str(ProtobufCBinaryData bstr)
33
33
  return str;
34
34
  }
35
35
 
36
- static BlobHeader *read_blob_header(FILE *input)
36
+ static OSMPBF__BlobHeader *read_blob_header(FILE *input)
37
37
  {
38
38
  void *buffer;
39
39
  size_t length = get_header_size(input);
40
- BlobHeader *header = NULL;
40
+ OSMPBF__BlobHeader *header = NULL;
41
41
 
42
42
  if(length < 1 || length > MAX_BLOB_HEADER_SIZE)
43
43
  {
@@ -56,7 +56,7 @@ static BlobHeader *read_blob_header(FILE *input)
56
56
  rb_raise(rb_eIOError, "Unable to read the blob header");
57
57
  }
58
58
 
59
- header = blob_header__unpack(NULL, length, buffer);
59
+ header = osmpbf__blob_header__unpack(NULL, length, buffer);
60
60
 
61
61
  free(buffer);
62
62
 
@@ -70,7 +70,7 @@ static void *read_blob(FILE *input, size_t length, size_t *raw_length)
70
70
  {
71
71
  VALUE exc = Qnil;
72
72
  void *buffer = NULL;
73
- Blob *blob = NULL;
73
+ OSMPBF__Blob *blob = NULL;
74
74
 
75
75
  if(length < 1 || length > MAX_BLOB_SIZE)
76
76
  rb_raise(rb_eIOError, "Invalid blob size");
@@ -79,7 +79,7 @@ static void *read_blob(FILE *input, size_t length, size_t *raw_length)
79
79
  rb_raise(rb_eNoMemError, "Unable to allocate memory for the blob");
80
80
 
81
81
  if(fread(buffer, length, 1, input))
82
- blob = blob__unpack(NULL, length, buffer);
82
+ blob = osmpbf__blob__unpack(NULL, length, buffer);
83
83
 
84
84
  free(buffer);
85
85
 
@@ -150,7 +150,7 @@ static void *read_blob(FILE *input, size_t length, size_t *raw_length)
150
150
  }
151
151
 
152
152
  exit_nicely:
153
- if(blob) blob__free_unpacked(blob, NULL);
153
+ if(blob) osmpbf__blob__free_unpacked(blob, NULL);
154
154
  if(!data) free(data);
155
155
  if(exc != Qnil) rb_exc_raise(exc);
156
156
 
@@ -168,7 +168,7 @@ static VALUE init_data_arr()
168
168
  return data;
169
169
  }
170
170
 
171
- static void add_info(VALUE hash, Info *info, StringTable *string_table, double ts_granularity)
171
+ static void add_info(VALUE hash, OSMPBF__Info *info, OSMPBF__StringTable *string_table, double ts_granularity)
172
172
  {
173
173
  VALUE version, timestamp, changeset, uid, user;
174
174
 
@@ -195,7 +195,7 @@ static void add_info(VALUE hash, Info *info, StringTable *string_table, double t
195
195
 
196
196
  static int parse_osm_header(VALUE obj, FILE *input)
197
197
  {
198
- BlobHeader *header = read_blob_header(input);
198
+ OSMPBF__BlobHeader *header = read_blob_header(input);
199
199
 
200
200
  // EOF reached
201
201
  if(header == NULL)
@@ -206,12 +206,12 @@ static int parse_osm_header(VALUE obj, FILE *input)
206
206
 
207
207
  void *blob = NULL;
208
208
  size_t blob_length = 0, datasize = header->datasize;
209
- HeaderBlock *header_block = NULL;
209
+ OSMPBF__HeaderBlock *header_block = NULL;
210
210
 
211
- blob_header__free_unpacked(header, NULL);
211
+ osmpbf__blob_header__free_unpacked(header, NULL);
212
212
 
213
213
  blob = read_blob(input, datasize, &blob_length);
214
- header_block = header_block__unpack(NULL, blob_length, blob);
214
+ header_block = osmpbf__header_block__unpack(NULL, blob_length, blob);
215
215
 
216
216
  free(blob);
217
217
 
@@ -282,12 +282,12 @@ static int parse_osm_header(VALUE obj, FILE *input)
282
282
 
283
283
  rb_iv_set(obj, "@header", header_hash);
284
284
 
285
- header_block__free_unpacked(header_block, NULL);
285
+ osmpbf__header_block__free_unpacked(header_block, NULL);
286
286
 
287
287
  return 1;
288
288
  }
289
289
 
290
- static void process_nodes(VALUE out, PrimitiveGroup *group, StringTable *string_table, int64_t lat_offset, int64_t lon_offset, int64_t granularity, int32_t ts_granularity)
290
+ static void process_nodes(VALUE out, OSMPBF__PrimitiveGroup *group, OSMPBF__StringTable *string_table, int64_t lat_offset, int64_t lon_offset, int64_t granularity, int32_t ts_granularity)
291
291
  {
292
292
  double lat = 0;
293
293
  double lon = 0;
@@ -296,7 +296,7 @@ static void process_nodes(VALUE out, PrimitiveGroup *group, StringTable *string_
296
296
 
297
297
  for(i = 0; i < group->n_nodes; i++)
298
298
  {
299
- Node *node = group->nodes[i];
299
+ OSMPBF__Node *node = group->nodes[i];
300
300
  VALUE node_out = rb_hash_new();
301
301
 
302
302
  lat = NANO_DEGREE * (lat_offset + (node->lat * granularity));
@@ -327,7 +327,7 @@ static void process_nodes(VALUE out, PrimitiveGroup *group, StringTable *string_
327
327
  }
328
328
  }
329
329
 
330
- static void process_dense_nodes(VALUE out, DenseNodes *dense_nodes, StringTable *string_table, int64_t lat_offset, int64_t lon_offset, int64_t granularity, int32_t ts_granularity)
330
+ static void process_dense_nodes(VALUE out, OSMPBF__DenseNodes *dense_nodes, OSMPBF__StringTable *string_table, int64_t lat_offset, int64_t lon_offset, int64_t granularity, int32_t ts_granularity)
331
331
  {
332
332
  uint64_t node_id = 0;
333
333
  int64_t delta_lat = 0;
@@ -366,7 +366,7 @@ static void process_dense_nodes(VALUE out, DenseNodes *dense_nodes, StringTable
366
366
  delta_user_sid += dense_nodes->denseinfo->user_sid[i];
367
367
  delta_uid += dense_nodes->denseinfo->uid[i];
368
368
 
369
- Info info = {
369
+ OSMPBF__Info info = {
370
370
  .version = dense_nodes->denseinfo->version[i],
371
371
  .timestamp = delta_timestamp,
372
372
  .changeset = delta_changeset,
@@ -402,14 +402,14 @@ static void process_dense_nodes(VALUE out, DenseNodes *dense_nodes, StringTable
402
402
  }
403
403
  }
404
404
 
405
- static void process_ways(VALUE out, PrimitiveGroup *group, StringTable *string_table, int32_t ts_granularity)
405
+ static void process_ways(VALUE out, OSMPBF__PrimitiveGroup *group, OSMPBF__StringTable *string_table, int32_t ts_granularity)
406
406
  {
407
407
  unsigned j, k;
408
408
  size_t i = 0;
409
409
 
410
410
  for(i = 0; i < group->n_ways; i++)
411
411
  {
412
- Way *way = group->ways[i];
412
+ OSMPBF__Way *way = group->ways[i];
413
413
  int64_t delta_refs = 0;
414
414
 
415
415
  VALUE way_out = rb_hash_new();
@@ -449,14 +449,14 @@ static void process_ways(VALUE out, PrimitiveGroup *group, StringTable *string_t
449
449
  }
450
450
  }
451
451
 
452
- static void process_relations(VALUE out, PrimitiveGroup *group, StringTable *string_table, int32_t ts_granularity)
452
+ static void process_relations(VALUE out, OSMPBF__PrimitiveGroup *group, OSMPBF__StringTable *string_table, int32_t ts_granularity)
453
453
  {
454
454
  unsigned j, k;
455
455
  size_t i = 0;
456
456
 
457
457
  for(i = 0; i < group->n_relations; i++)
458
458
  {
459
- Relation *relation = group->relations[i];
459
+ OSMPBF__Relation *relation = group->relations[i];
460
460
  VALUE relation_out = rb_hash_new();
461
461
 
462
462
  rb_hash_aset(relation_out, STR2SYM("id"), LL2NUM(relation->id));
@@ -501,13 +501,13 @@ static void process_relations(VALUE out, PrimitiveGroup *group, StringTable *str
501
501
 
502
502
  switch(relation->types[k])
503
503
  {
504
- case RELATION__MEMBER_TYPE__NODE:
504
+ case OSMPBF__RELATION__MEMBER_TYPE__NODE:
505
505
  rb_ary_push(nodes, member);
506
506
  break;
507
- case RELATION__MEMBER_TYPE__WAY:
507
+ case OSMPBF__RELATION__MEMBER_TYPE__WAY:
508
508
  rb_ary_push(ways, member);
509
509
  break;
510
- case RELATION__MEMBER_TYPE__RELATION:
510
+ case OSMPBF__RELATION__MEMBER_TYPE__RELATION:
511
511
  rb_ary_push(relations, member);
512
512
  break;
513
513
  }
@@ -530,7 +530,7 @@ static void process_relations(VALUE out, PrimitiveGroup *group, StringTable *str
530
530
  static VALUE parse_osm_data(VALUE obj)
531
531
  {
532
532
  FILE *input = DATA_PTR(obj);
533
- BlobHeader *header = read_blob_header(input);
533
+ OSMPBF__BlobHeader *header = read_blob_header(input);
534
534
 
535
535
  if(header == NULL)
536
536
  return Qfalse;
@@ -540,12 +540,12 @@ static VALUE parse_osm_data(VALUE obj)
540
540
 
541
541
  void *blob = NULL;
542
542
  size_t blob_length = 0, datasize = header->datasize;
543
- PrimitiveBlock *primitive_block = NULL;
543
+ OSMPBF__PrimitiveBlock *primitive_block = NULL;
544
544
 
545
- blob_header__free_unpacked(header, NULL);
545
+ osmpbf__blob_header__free_unpacked(header, NULL);
546
546
 
547
547
  blob = read_blob(input, datasize, &blob_length);
548
- primitive_block = primitive_block__unpack(NULL, blob_length, blob);
548
+ primitive_block = osmpbf__primitive_block__unpack(NULL, blob_length, blob);
549
549
 
550
550
  free(blob);
551
551
 
@@ -560,7 +560,7 @@ static VALUE parse_osm_data(VALUE obj)
560
560
  granularity = primitive_block->granularity;
561
561
  ts_granularity = primitive_block->date_granularity;
562
562
 
563
- StringTable *string_table = primitive_block->stringtable;
563
+ OSMPBF__StringTable *string_table = primitive_block->stringtable;
564
564
 
565
565
  VALUE data = init_data_arr();
566
566
  VALUE nodes = rb_hash_aref(data, STR2SYM("nodes"));
@@ -571,7 +571,7 @@ static VALUE parse_osm_data(VALUE obj)
571
571
 
572
572
  for(i = 0; i < primitive_block->n_primitivegroup; i++)
573
573
  {
574
- PrimitiveGroup *primitive_group = primitive_block->primitivegroup[i];
574
+ OSMPBF__PrimitiveGroup *primitive_group = primitive_block->primitivegroup[i];
575
575
 
576
576
  if(primitive_group->nodes)
577
577
  process_nodes(nodes, primitive_group, string_table, lat_offset, lon_offset, granularity, ts_granularity);
@@ -588,7 +588,7 @@ static VALUE parse_osm_data(VALUE obj)
588
588
 
589
589
  rb_iv_set(obj, "@data", data);
590
590
 
591
- primitive_block__free_unpacked(primitive_block, NULL);
591
+ osmpbf__primitive_block__free_unpacked(primitive_block, NULL);
592
592
 
593
593
  // Increment position
594
594
  rb_iv_set(obj, "@pos", INT2NUM(NUM2INT(rb_iv_get(obj, "@pos")) + 1));
@@ -606,7 +606,7 @@ static VALUE find_all_blobs(VALUE obj)
606
606
  rb_raise(rb_eIOError, "Unable to seek to beginning of file");
607
607
  }
608
608
 
609
- BlobHeader *header;
609
+ OSMPBF__BlobHeader *header;
610
610
 
611
611
  VALUE blobs = rb_ary_new();
612
612
  rb_iv_set(obj, "@blobs", blobs);
@@ -638,7 +638,7 @@ static VALUE find_all_blobs(VALUE obj)
638
638
  rb_ary_push(blobs, blob_info);
639
639
  }
640
640
 
641
- blob_header__free_unpacked(header, NULL);
641
+ osmpbf__blob_header__free_unpacked(header, NULL);
642
642
 
643
643
  if (0 != fseek(input, datasize, SEEK_CUR)) {
644
644
  break; // cut losses
@@ -731,7 +731,7 @@ static VALUE seek_to_osm_data(VALUE obj, VALUE index)
731
731
  if (0 != fseek(input, pos, SEEK_SET)) {
732
732
  rb_raise(rb_eIOError, "Unable to seek to file position");
733
733
  }
734
-
734
+
735
735
  // Set position - incremented by parse_osm_data
736
736
  rb_iv_set(obj, "@pos", INT2NUM(index_raw - 1));
737
737
 
@@ -0,0 +1,3 @@
1
+ class PbfParser
2
+ VERSION = '0.2.0'
3
+ end
data/lib/pbf_parser.rb ADDED
@@ -0,0 +1 @@
1
+ require 'pbf_parser/pbf_parser'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pbf_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrià Planas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-08 00:00:00.000000000 Z
11
+ date: 2014-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -53,6 +53,8 @@ files:
53
53
  - ext/pbf_parser/osmformat.pb-c.h
54
54
  - ext/pbf_parser/pbf_parser.c
55
55
  - ext/pbf_parser/pbf_parser.h
56
+ - lib/pbf_parser.rb
57
+ - lib/pbf_parser/version.rb
56
58
  homepage: https://github.com/planas/pbf_parser
57
59
  licenses:
58
60
  - MIT