1 // automatically generated by the FlatBuffers compiler, do not modify
2
3
4 #ifndef FLATBUFFERS_GENERATED_HEADER_FLATGEOBUF_H_
5 #define FLATBUFFERS_GENERATED_HEADER_FLATGEOBUF_H_
6
7 #include "flatbuffers/flatbuffers.h"
8
9 namespace FlatGeobuf {
10
11 struct Column;
12 struct ColumnBuilder;
13
14 struct Crs;
15 struct CrsBuilder;
16
17 struct Header;
18 struct HeaderBuilder;
19
20 enum class GeometryType : uint8_t {
21 Unknown = 0,
22 Point = 1,
23 LineString = 2,
24 Polygon = 3,
25 MultiPoint = 4,
26 MultiLineString = 5,
27 MultiPolygon = 6,
28 GeometryCollection = 7,
29 CircularString = 8,
30 CompoundCurve = 9,
31 CurvePolygon = 10,
32 MultiCurve = 11,
33 MultiSurface = 12,
34 Curve = 13,
35 Surface = 14,
36 PolyhedralSurface = 15,
37 TIN = 16,
38 Triangle = 17,
39 MIN = Unknown,
40 MAX = Triangle
41 };
42
EnumValuesGeometryType()43 inline const GeometryType (&EnumValuesGeometryType())[18] {
44 static const GeometryType values[] = {
45 GeometryType::Unknown,
46 GeometryType::Point,
47 GeometryType::LineString,
48 GeometryType::Polygon,
49 GeometryType::MultiPoint,
50 GeometryType::MultiLineString,
51 GeometryType::MultiPolygon,
52 GeometryType::GeometryCollection,
53 GeometryType::CircularString,
54 GeometryType::CompoundCurve,
55 GeometryType::CurvePolygon,
56 GeometryType::MultiCurve,
57 GeometryType::MultiSurface,
58 GeometryType::Curve,
59 GeometryType::Surface,
60 GeometryType::PolyhedralSurface,
61 GeometryType::TIN,
62 GeometryType::Triangle
63 };
64 return values;
65 }
66
EnumNamesGeometryType()67 inline const char * const *EnumNamesGeometryType() {
68 static const char * const names[19] = {
69 "Unknown",
70 "Point",
71 "LineString",
72 "Polygon",
73 "MultiPoint",
74 "MultiLineString",
75 "MultiPolygon",
76 "GeometryCollection",
77 "CircularString",
78 "CompoundCurve",
79 "CurvePolygon",
80 "MultiCurve",
81 "MultiSurface",
82 "Curve",
83 "Surface",
84 "PolyhedralSurface",
85 "TIN",
86 "Triangle",
87 nullptr
88 };
89 return names;
90 }
91
EnumNameGeometryType(GeometryType e)92 inline const char *EnumNameGeometryType(GeometryType e) {
93 if (flatbuffers::IsOutRange(e, GeometryType::Unknown, GeometryType::Triangle)) return "";
94 const size_t index = static_cast<size_t>(e);
95 return EnumNamesGeometryType()[index];
96 }
97
98 enum class ColumnType : uint8_t {
99 Byte = 0,
100 UByte = 1,
101 Bool = 2,
102 Short = 3,
103 UShort = 4,
104 Int = 5,
105 UInt = 6,
106 Long = 7,
107 ULong = 8,
108 Float = 9,
109 Double = 10,
110 String = 11,
111 Json = 12,
112 DateTime = 13,
113 Binary = 14,
114 MIN = Byte,
115 MAX = Binary
116 };
117
EnumValuesColumnType()118 inline const ColumnType (&EnumValuesColumnType())[15] {
119 static const ColumnType values[] = {
120 ColumnType::Byte,
121 ColumnType::UByte,
122 ColumnType::Bool,
123 ColumnType::Short,
124 ColumnType::UShort,
125 ColumnType::Int,
126 ColumnType::UInt,
127 ColumnType::Long,
128 ColumnType::ULong,
129 ColumnType::Float,
130 ColumnType::Double,
131 ColumnType::String,
132 ColumnType::Json,
133 ColumnType::DateTime,
134 ColumnType::Binary
135 };
136 return values;
137 }
138
EnumNamesColumnType()139 inline const char * const *EnumNamesColumnType() {
140 static const char * const names[16] = {
141 "Byte",
142 "UByte",
143 "Bool",
144 "Short",
145 "UShort",
146 "Int",
147 "UInt",
148 "Long",
149 "ULong",
150 "Float",
151 "Double",
152 "String",
153 "Json",
154 "DateTime",
155 "Binary",
156 nullptr
157 };
158 return names;
159 }
160
EnumNameColumnType(ColumnType e)161 inline const char *EnumNameColumnType(ColumnType e) {
162 if (flatbuffers::IsOutRange(e, ColumnType::Byte, ColumnType::Binary)) return "";
163 const size_t index = static_cast<size_t>(e);
164 return EnumNamesColumnType()[index];
165 }
166
167 struct Column FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
168 typedef ColumnBuilder Builder;
169 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
170 VT_NAME = 4,
171 VT_TYPE = 6,
172 VT_TITLE = 8,
173 VT_DESCRIPTION = 10,
174 VT_WIDTH = 12,
175 VT_PRECISION = 14,
176 VT_SCALE = 16,
177 VT_NULLABLE = 18,
178 VT_UNIQUE = 20,
179 VT_PRIMARY_KEY = 22,
180 VT_METADATA = 24
181 };
nameFLATBUFFERS_FINAL_CLASS182 const flatbuffers::String *name() const {
183 return GetPointer<const flatbuffers::String *>(VT_NAME);
184 }
typeFLATBUFFERS_FINAL_CLASS185 FlatGeobuf::ColumnType type() const {
186 return static_cast<FlatGeobuf::ColumnType>(GetField<uint8_t>(VT_TYPE, 0));
187 }
titleFLATBUFFERS_FINAL_CLASS188 const flatbuffers::String *title() const {
189 return GetPointer<const flatbuffers::String *>(VT_TITLE);
190 }
descriptionFLATBUFFERS_FINAL_CLASS191 const flatbuffers::String *description() const {
192 return GetPointer<const flatbuffers::String *>(VT_DESCRIPTION);
193 }
widthFLATBUFFERS_FINAL_CLASS194 int32_t width() const {
195 return GetField<int32_t>(VT_WIDTH, -1);
196 }
precisionFLATBUFFERS_FINAL_CLASS197 int32_t precision() const {
198 return GetField<int32_t>(VT_PRECISION, -1);
199 }
scaleFLATBUFFERS_FINAL_CLASS200 int32_t scale() const {
201 return GetField<int32_t>(VT_SCALE, -1);
202 }
nullableFLATBUFFERS_FINAL_CLASS203 bool nullable() const {
204 return GetField<uint8_t>(VT_NULLABLE, 1) != 0;
205 }
uniqueFLATBUFFERS_FINAL_CLASS206 bool unique() const {
207 return GetField<uint8_t>(VT_UNIQUE, 0) != 0;
208 }
primary_keyFLATBUFFERS_FINAL_CLASS209 bool primary_key() const {
210 return GetField<uint8_t>(VT_PRIMARY_KEY, 0) != 0;
211 }
metadataFLATBUFFERS_FINAL_CLASS212 const flatbuffers::String *metadata() const {
213 return GetPointer<const flatbuffers::String *>(VT_METADATA);
214 }
VerifyFLATBUFFERS_FINAL_CLASS215 bool Verify(flatbuffers::Verifier &verifier) const {
216 return VerifyTableStart(verifier) &&
217 VerifyOffsetRequired(verifier, VT_NAME) &&
218 verifier.VerifyString(name()) &&
219 VerifyField<uint8_t>(verifier, VT_TYPE) &&
220 VerifyOffset(verifier, VT_TITLE) &&
221 verifier.VerifyString(title()) &&
222 VerifyOffset(verifier, VT_DESCRIPTION) &&
223 verifier.VerifyString(description()) &&
224 VerifyField<int32_t>(verifier, VT_WIDTH) &&
225 VerifyField<int32_t>(verifier, VT_PRECISION) &&
226 VerifyField<int32_t>(verifier, VT_SCALE) &&
227 VerifyField<uint8_t>(verifier, VT_NULLABLE) &&
228 VerifyField<uint8_t>(verifier, VT_UNIQUE) &&
229 VerifyField<uint8_t>(verifier, VT_PRIMARY_KEY) &&
230 VerifyOffset(verifier, VT_METADATA) &&
231 verifier.VerifyString(metadata()) &&
232 verifier.EndTable();
233 }
234 };
235
236 struct ColumnBuilder {
237 typedef Column Table;
238 flatbuffers::FlatBufferBuilder &fbb_;
239 flatbuffers::uoffset_t start_;
add_nameColumnBuilder240 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
241 fbb_.AddOffset(Column::VT_NAME, name);
242 }
add_typeColumnBuilder243 void add_type(FlatGeobuf::ColumnType type) {
244 fbb_.AddElement<uint8_t>(Column::VT_TYPE, static_cast<uint8_t>(type), 0);
245 }
add_titleColumnBuilder246 void add_title(flatbuffers::Offset<flatbuffers::String> title) {
247 fbb_.AddOffset(Column::VT_TITLE, title);
248 }
add_descriptionColumnBuilder249 void add_description(flatbuffers::Offset<flatbuffers::String> description) {
250 fbb_.AddOffset(Column::VT_DESCRIPTION, description);
251 }
add_widthColumnBuilder252 void add_width(int32_t width) {
253 fbb_.AddElement<int32_t>(Column::VT_WIDTH, width, -1);
254 }
add_precisionColumnBuilder255 void add_precision(int32_t precision) {
256 fbb_.AddElement<int32_t>(Column::VT_PRECISION, precision, -1);
257 }
add_scaleColumnBuilder258 void add_scale(int32_t scale) {
259 fbb_.AddElement<int32_t>(Column::VT_SCALE, scale, -1);
260 }
add_nullableColumnBuilder261 void add_nullable(bool nullable) {
262 fbb_.AddElement<uint8_t>(Column::VT_NULLABLE, static_cast<uint8_t>(nullable), 1);
263 }
add_uniqueColumnBuilder264 void add_unique(bool unique) {
265 fbb_.AddElement<uint8_t>(Column::VT_UNIQUE, static_cast<uint8_t>(unique), 0);
266 }
add_primary_keyColumnBuilder267 void add_primary_key(bool primary_key) {
268 fbb_.AddElement<uint8_t>(Column::VT_PRIMARY_KEY, static_cast<uint8_t>(primary_key), 0);
269 }
add_metadataColumnBuilder270 void add_metadata(flatbuffers::Offset<flatbuffers::String> metadata) {
271 fbb_.AddOffset(Column::VT_METADATA, metadata);
272 }
ColumnBuilderColumnBuilder273 explicit ColumnBuilder(flatbuffers::FlatBufferBuilder &_fbb)
274 : fbb_(_fbb) {
275 start_ = fbb_.StartTable();
276 }
FinishColumnBuilder277 flatbuffers::Offset<Column> Finish() {
278 const auto end = fbb_.EndTable(start_);
279 auto o = flatbuffers::Offset<Column>(end);
280 fbb_.Required(o, Column::VT_NAME);
281 return o;
282 }
283 };
284
285 inline flatbuffers::Offset<Column> CreateColumn(
286 flatbuffers::FlatBufferBuilder &_fbb,
287 flatbuffers::Offset<flatbuffers::String> name = 0,
288 FlatGeobuf::ColumnType type = FlatGeobuf::ColumnType::Byte,
289 flatbuffers::Offset<flatbuffers::String> title = 0,
290 flatbuffers::Offset<flatbuffers::String> description = 0,
291 int32_t width = -1,
292 int32_t precision = -1,
293 int32_t scale = -1,
294 bool nullable = true,
295 bool unique = false,
296 bool primary_key = false,
297 flatbuffers::Offset<flatbuffers::String> metadata = 0) {
298 ColumnBuilder builder_(_fbb);
299 builder_.add_metadata(metadata);
300 builder_.add_scale(scale);
301 builder_.add_precision(precision);
302 builder_.add_width(width);
303 builder_.add_description(description);
304 builder_.add_title(title);
305 builder_.add_name(name);
306 builder_.add_primary_key(primary_key);
307 builder_.add_unique(unique);
308 builder_.add_nullable(nullable);
309 builder_.add_type(type);
310 return builder_.Finish();
311 }
312
313 inline flatbuffers::Offset<Column> CreateColumnDirect(
314 flatbuffers::FlatBufferBuilder &_fbb,
315 const char *name = nullptr,
316 FlatGeobuf::ColumnType type = FlatGeobuf::ColumnType::Byte,
317 const char *title = nullptr,
318 const char *description = nullptr,
319 int32_t width = -1,
320 int32_t precision = -1,
321 int32_t scale = -1,
322 bool nullable = true,
323 bool unique = false,
324 bool primary_key = false,
325 const char *metadata = nullptr) {
326 auto name__ = name ? _fbb.CreateString(name) : 0;
327 auto title__ = title ? _fbb.CreateString(title) : 0;
328 auto description__ = description ? _fbb.CreateString(description) : 0;
329 auto metadata__ = metadata ? _fbb.CreateString(metadata) : 0;
330 return FlatGeobuf::CreateColumn(
331 _fbb,
332 name__,
333 type,
334 title__,
335 description__,
336 width,
337 precision,
338 scale,
339 nullable,
340 unique,
341 primary_key,
342 metadata__);
343 }
344
345 struct Crs FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
346 typedef CrsBuilder Builder;
347 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
348 VT_ORG = 4,
349 VT_CODE = 6,
350 VT_NAME = 8,
351 VT_DESCRIPTION = 10,
352 VT_WKT = 12,
353 VT_CODE_STRING = 14
354 };
orgFLATBUFFERS_FINAL_CLASS355 const flatbuffers::String *org() const {
356 return GetPointer<const flatbuffers::String *>(VT_ORG);
357 }
codeFLATBUFFERS_FINAL_CLASS358 int32_t code() const {
359 return GetField<int32_t>(VT_CODE, 0);
360 }
nameFLATBUFFERS_FINAL_CLASS361 const flatbuffers::String *name() const {
362 return GetPointer<const flatbuffers::String *>(VT_NAME);
363 }
descriptionFLATBUFFERS_FINAL_CLASS364 const flatbuffers::String *description() const {
365 return GetPointer<const flatbuffers::String *>(VT_DESCRIPTION);
366 }
wktFLATBUFFERS_FINAL_CLASS367 const flatbuffers::String *wkt() const {
368 return GetPointer<const flatbuffers::String *>(VT_WKT);
369 }
code_stringFLATBUFFERS_FINAL_CLASS370 const flatbuffers::String *code_string() const {
371 return GetPointer<const flatbuffers::String *>(VT_CODE_STRING);
372 }
VerifyFLATBUFFERS_FINAL_CLASS373 bool Verify(flatbuffers::Verifier &verifier) const {
374 return VerifyTableStart(verifier) &&
375 VerifyOffset(verifier, VT_ORG) &&
376 verifier.VerifyString(org()) &&
377 VerifyField<int32_t>(verifier, VT_CODE) &&
378 VerifyOffset(verifier, VT_NAME) &&
379 verifier.VerifyString(name()) &&
380 VerifyOffset(verifier, VT_DESCRIPTION) &&
381 verifier.VerifyString(description()) &&
382 VerifyOffset(verifier, VT_WKT) &&
383 verifier.VerifyString(wkt()) &&
384 VerifyOffset(verifier, VT_CODE_STRING) &&
385 verifier.VerifyString(code_string()) &&
386 verifier.EndTable();
387 }
388 };
389
390 struct CrsBuilder {
391 typedef Crs Table;
392 flatbuffers::FlatBufferBuilder &fbb_;
393 flatbuffers::uoffset_t start_;
add_orgCrsBuilder394 void add_org(flatbuffers::Offset<flatbuffers::String> org) {
395 fbb_.AddOffset(Crs::VT_ORG, org);
396 }
add_codeCrsBuilder397 void add_code(int32_t code) {
398 fbb_.AddElement<int32_t>(Crs::VT_CODE, code, 0);
399 }
add_nameCrsBuilder400 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
401 fbb_.AddOffset(Crs::VT_NAME, name);
402 }
add_descriptionCrsBuilder403 void add_description(flatbuffers::Offset<flatbuffers::String> description) {
404 fbb_.AddOffset(Crs::VT_DESCRIPTION, description);
405 }
add_wktCrsBuilder406 void add_wkt(flatbuffers::Offset<flatbuffers::String> wkt) {
407 fbb_.AddOffset(Crs::VT_WKT, wkt);
408 }
add_code_stringCrsBuilder409 void add_code_string(flatbuffers::Offset<flatbuffers::String> code_string) {
410 fbb_.AddOffset(Crs::VT_CODE_STRING, code_string);
411 }
CrsBuilderCrsBuilder412 explicit CrsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
413 : fbb_(_fbb) {
414 start_ = fbb_.StartTable();
415 }
FinishCrsBuilder416 flatbuffers::Offset<Crs> Finish() {
417 const auto end = fbb_.EndTable(start_);
418 auto o = flatbuffers::Offset<Crs>(end);
419 return o;
420 }
421 };
422
423 inline flatbuffers::Offset<Crs> CreateCrs(
424 flatbuffers::FlatBufferBuilder &_fbb,
425 flatbuffers::Offset<flatbuffers::String> org = 0,
426 int32_t code = 0,
427 flatbuffers::Offset<flatbuffers::String> name = 0,
428 flatbuffers::Offset<flatbuffers::String> description = 0,
429 flatbuffers::Offset<flatbuffers::String> wkt = 0,
430 flatbuffers::Offset<flatbuffers::String> code_string = 0) {
431 CrsBuilder builder_(_fbb);
432 builder_.add_code_string(code_string);
433 builder_.add_wkt(wkt);
434 builder_.add_description(description);
435 builder_.add_name(name);
436 builder_.add_code(code);
437 builder_.add_org(org);
438 return builder_.Finish();
439 }
440
441 inline flatbuffers::Offset<Crs> CreateCrsDirect(
442 flatbuffers::FlatBufferBuilder &_fbb,
443 const char *org = nullptr,
444 int32_t code = 0,
445 const char *name = nullptr,
446 const char *description = nullptr,
447 const char *wkt = nullptr,
448 const char *code_string = nullptr) {
449 auto org__ = org ? _fbb.CreateString(org) : 0;
450 auto name__ = name ? _fbb.CreateString(name) : 0;
451 auto description__ = description ? _fbb.CreateString(description) : 0;
452 auto wkt__ = wkt ? _fbb.CreateString(wkt) : 0;
453 auto code_string__ = code_string ? _fbb.CreateString(code_string) : 0;
454 return FlatGeobuf::CreateCrs(
455 _fbb,
456 org__,
457 code,
458 name__,
459 description__,
460 wkt__,
461 code_string__);
462 }
463
464 struct Header FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
465 typedef HeaderBuilder Builder;
466 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
467 VT_NAME = 4,
468 VT_ENVELOPE = 6,
469 VT_GEOMETRY_TYPE = 8,
470 VT_HAS_Z = 10,
471 VT_HAS_M = 12,
472 VT_HAS_T = 14,
473 VT_HAS_TM = 16,
474 VT_COLUMNS = 18,
475 VT_FEATURES_COUNT = 20,
476 VT_INDEX_NODE_SIZE = 22,
477 VT_CRS = 24,
478 VT_TITLE = 26,
479 VT_DESCRIPTION = 28,
480 VT_METADATA = 30
481 };
nameFLATBUFFERS_FINAL_CLASS482 const flatbuffers::String *name() const {
483 return GetPointer<const flatbuffers::String *>(VT_NAME);
484 }
envelopeFLATBUFFERS_FINAL_CLASS485 const flatbuffers::Vector<double> *envelope() const {
486 return GetPointer<const flatbuffers::Vector<double> *>(VT_ENVELOPE);
487 }
geometry_typeFLATBUFFERS_FINAL_CLASS488 FlatGeobuf::GeometryType geometry_type() const {
489 return static_cast<FlatGeobuf::GeometryType>(GetField<uint8_t>(VT_GEOMETRY_TYPE, 0));
490 }
has_zFLATBUFFERS_FINAL_CLASS491 bool has_z() const {
492 return GetField<uint8_t>(VT_HAS_Z, 0) != 0;
493 }
has_mFLATBUFFERS_FINAL_CLASS494 bool has_m() const {
495 return GetField<uint8_t>(VT_HAS_M, 0) != 0;
496 }
has_tFLATBUFFERS_FINAL_CLASS497 bool has_t() const {
498 return GetField<uint8_t>(VT_HAS_T, 0) != 0;
499 }
has_tmFLATBUFFERS_FINAL_CLASS500 bool has_tm() const {
501 return GetField<uint8_t>(VT_HAS_TM, 0) != 0;
502 }
columnsFLATBUFFERS_FINAL_CLASS503 const flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>> *columns() const {
504 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>> *>(VT_COLUMNS);
505 }
features_countFLATBUFFERS_FINAL_CLASS506 uint64_t features_count() const {
507 return GetField<uint64_t>(VT_FEATURES_COUNT, 0);
508 }
index_node_sizeFLATBUFFERS_FINAL_CLASS509 uint16_t index_node_size() const {
510 return GetField<uint16_t>(VT_INDEX_NODE_SIZE, 16);
511 }
crsFLATBUFFERS_FINAL_CLASS512 const FlatGeobuf::Crs *crs() const {
513 return GetPointer<const FlatGeobuf::Crs *>(VT_CRS);
514 }
titleFLATBUFFERS_FINAL_CLASS515 const flatbuffers::String *title() const {
516 return GetPointer<const flatbuffers::String *>(VT_TITLE);
517 }
descriptionFLATBUFFERS_FINAL_CLASS518 const flatbuffers::String *description() const {
519 return GetPointer<const flatbuffers::String *>(VT_DESCRIPTION);
520 }
metadataFLATBUFFERS_FINAL_CLASS521 const flatbuffers::String *metadata() const {
522 return GetPointer<const flatbuffers::String *>(VT_METADATA);
523 }
VerifyFLATBUFFERS_FINAL_CLASS524 bool Verify(flatbuffers::Verifier &verifier) const {
525 return VerifyTableStart(verifier) &&
526 VerifyOffset(verifier, VT_NAME) &&
527 verifier.VerifyString(name()) &&
528 VerifyOffset(verifier, VT_ENVELOPE) &&
529 verifier.VerifyVector(envelope()) &&
530 VerifyField<uint8_t>(verifier, VT_GEOMETRY_TYPE) &&
531 VerifyField<uint8_t>(verifier, VT_HAS_Z) &&
532 VerifyField<uint8_t>(verifier, VT_HAS_M) &&
533 VerifyField<uint8_t>(verifier, VT_HAS_T) &&
534 VerifyField<uint8_t>(verifier, VT_HAS_TM) &&
535 VerifyOffset(verifier, VT_COLUMNS) &&
536 verifier.VerifyVector(columns()) &&
537 verifier.VerifyVectorOfTables(columns()) &&
538 VerifyField<uint64_t>(verifier, VT_FEATURES_COUNT) &&
539 VerifyField<uint16_t>(verifier, VT_INDEX_NODE_SIZE) &&
540 VerifyOffset(verifier, VT_CRS) &&
541 verifier.VerifyTable(crs()) &&
542 VerifyOffset(verifier, VT_TITLE) &&
543 verifier.VerifyString(title()) &&
544 VerifyOffset(verifier, VT_DESCRIPTION) &&
545 verifier.VerifyString(description()) &&
546 VerifyOffset(verifier, VT_METADATA) &&
547 verifier.VerifyString(metadata()) &&
548 verifier.EndTable();
549 }
550 };
551
552 struct HeaderBuilder {
553 typedef Header Table;
554 flatbuffers::FlatBufferBuilder &fbb_;
555 flatbuffers::uoffset_t start_;
add_nameHeaderBuilder556 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
557 fbb_.AddOffset(Header::VT_NAME, name);
558 }
add_envelopeHeaderBuilder559 void add_envelope(flatbuffers::Offset<flatbuffers::Vector<double>> envelope) {
560 fbb_.AddOffset(Header::VT_ENVELOPE, envelope);
561 }
add_geometry_typeHeaderBuilder562 void add_geometry_type(FlatGeobuf::GeometryType geometry_type) {
563 fbb_.AddElement<uint8_t>(Header::VT_GEOMETRY_TYPE, static_cast<uint8_t>(geometry_type), 0);
564 }
add_has_zHeaderBuilder565 void add_has_z(bool has_z) {
566 fbb_.AddElement<uint8_t>(Header::VT_HAS_Z, static_cast<uint8_t>(has_z), 0);
567 }
add_has_mHeaderBuilder568 void add_has_m(bool has_m) {
569 fbb_.AddElement<uint8_t>(Header::VT_HAS_M, static_cast<uint8_t>(has_m), 0);
570 }
add_has_tHeaderBuilder571 void add_has_t(bool has_t) {
572 fbb_.AddElement<uint8_t>(Header::VT_HAS_T, static_cast<uint8_t>(has_t), 0);
573 }
add_has_tmHeaderBuilder574 void add_has_tm(bool has_tm) {
575 fbb_.AddElement<uint8_t>(Header::VT_HAS_TM, static_cast<uint8_t>(has_tm), 0);
576 }
add_columnsHeaderBuilder577 void add_columns(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>>> columns) {
578 fbb_.AddOffset(Header::VT_COLUMNS, columns);
579 }
add_features_countHeaderBuilder580 void add_features_count(uint64_t features_count) {
581 fbb_.AddElement<uint64_t>(Header::VT_FEATURES_COUNT, features_count, 0);
582 }
add_index_node_sizeHeaderBuilder583 void add_index_node_size(uint16_t index_node_size) {
584 fbb_.AddElement<uint16_t>(Header::VT_INDEX_NODE_SIZE, index_node_size, 16);
585 }
add_crsHeaderBuilder586 void add_crs(flatbuffers::Offset<FlatGeobuf::Crs> crs) {
587 fbb_.AddOffset(Header::VT_CRS, crs);
588 }
add_titleHeaderBuilder589 void add_title(flatbuffers::Offset<flatbuffers::String> title) {
590 fbb_.AddOffset(Header::VT_TITLE, title);
591 }
add_descriptionHeaderBuilder592 void add_description(flatbuffers::Offset<flatbuffers::String> description) {
593 fbb_.AddOffset(Header::VT_DESCRIPTION, description);
594 }
add_metadataHeaderBuilder595 void add_metadata(flatbuffers::Offset<flatbuffers::String> metadata) {
596 fbb_.AddOffset(Header::VT_METADATA, metadata);
597 }
HeaderBuilderHeaderBuilder598 explicit HeaderBuilder(flatbuffers::FlatBufferBuilder &_fbb)
599 : fbb_(_fbb) {
600 start_ = fbb_.StartTable();
601 }
FinishHeaderBuilder602 flatbuffers::Offset<Header> Finish() {
603 const auto end = fbb_.EndTable(start_);
604 auto o = flatbuffers::Offset<Header>(end);
605 return o;
606 }
607 };
608
609 inline flatbuffers::Offset<Header> CreateHeader(
610 flatbuffers::FlatBufferBuilder &_fbb,
611 flatbuffers::Offset<flatbuffers::String> name = 0,
612 flatbuffers::Offset<flatbuffers::Vector<double>> envelope = 0,
613 FlatGeobuf::GeometryType geometry_type = FlatGeobuf::GeometryType::Unknown,
614 bool has_z = false,
615 bool has_m = false,
616 bool has_t = false,
617 bool has_tm = false,
618 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>>> columns = 0,
619 uint64_t features_count = 0,
620 uint16_t index_node_size = 16,
621 flatbuffers::Offset<FlatGeobuf::Crs> crs = 0,
622 flatbuffers::Offset<flatbuffers::String> title = 0,
623 flatbuffers::Offset<flatbuffers::String> description = 0,
624 flatbuffers::Offset<flatbuffers::String> metadata = 0) {
625 HeaderBuilder builder_(_fbb);
626 builder_.add_features_count(features_count);
627 builder_.add_metadata(metadata);
628 builder_.add_description(description);
629 builder_.add_title(title);
630 builder_.add_crs(crs);
631 builder_.add_columns(columns);
632 builder_.add_envelope(envelope);
633 builder_.add_name(name);
634 builder_.add_index_node_size(index_node_size);
635 builder_.add_has_tm(has_tm);
636 builder_.add_has_t(has_t);
637 builder_.add_has_m(has_m);
638 builder_.add_has_z(has_z);
639 builder_.add_geometry_type(geometry_type);
640 return builder_.Finish();
641 }
642
643 inline flatbuffers::Offset<Header> CreateHeaderDirect(
644 flatbuffers::FlatBufferBuilder &_fbb,
645 const char *name = nullptr,
646 const std::vector<double> *envelope = nullptr,
647 FlatGeobuf::GeometryType geometry_type = FlatGeobuf::GeometryType::Unknown,
648 bool has_z = false,
649 bool has_m = false,
650 bool has_t = false,
651 bool has_tm = false,
652 const std::vector<flatbuffers::Offset<FlatGeobuf::Column>> *columns = nullptr,
653 uint64_t features_count = 0,
654 uint16_t index_node_size = 16,
655 flatbuffers::Offset<FlatGeobuf::Crs> crs = 0,
656 const char *title = nullptr,
657 const char *description = nullptr,
658 const char *metadata = nullptr) {
659 auto name__ = name ? _fbb.CreateString(name) : 0;
660 auto envelope__ = envelope ? _fbb.CreateVector<double>(*envelope) : 0;
661 auto columns__ = columns ? _fbb.CreateVector<flatbuffers::Offset<FlatGeobuf::Column>>(*columns) : 0;
662 auto title__ = title ? _fbb.CreateString(title) : 0;
663 auto description__ = description ? _fbb.CreateString(description) : 0;
664 auto metadata__ = metadata ? _fbb.CreateString(metadata) : 0;
665 return FlatGeobuf::CreateHeader(
666 _fbb,
667 name__,
668 envelope__,
669 geometry_type,
670 has_z,
671 has_m,
672 has_t,
673 has_tm,
674 columns__,
675 features_count,
676 index_node_size,
677 crs,
678 title__,
679 description__,
680 metadata__);
681 }
682
GetHeader(const void * buf)683 inline const FlatGeobuf::Header *GetHeader(const void *buf) {
684 return flatbuffers::GetRoot<FlatGeobuf::Header>(buf);
685 }
686
GetSizePrefixedHeader(const void * buf)687 inline const FlatGeobuf::Header *GetSizePrefixedHeader(const void *buf) {
688 return flatbuffers::GetSizePrefixedRoot<FlatGeobuf::Header>(buf);
689 }
690
VerifyHeaderBuffer(flatbuffers::Verifier & verifier)691 inline bool VerifyHeaderBuffer(
692 flatbuffers::Verifier &verifier) {
693 return verifier.VerifyBuffer<FlatGeobuf::Header>(nullptr);
694 }
695
VerifySizePrefixedHeaderBuffer(flatbuffers::Verifier & verifier)696 inline bool VerifySizePrefixedHeaderBuffer(
697 flatbuffers::Verifier &verifier) {
698 return verifier.VerifySizePrefixedBuffer<FlatGeobuf::Header>(nullptr);
699 }
700
FinishHeaderBuffer(flatbuffers::FlatBufferBuilder & fbb,flatbuffers::Offset<FlatGeobuf::Header> root)701 inline void FinishHeaderBuffer(
702 flatbuffers::FlatBufferBuilder &fbb,
703 flatbuffers::Offset<FlatGeobuf::Header> root) {
704 fbb.Finish(root);
705 }
706
FinishSizePrefixedHeaderBuffer(flatbuffers::FlatBufferBuilder & fbb,flatbuffers::Offset<FlatGeobuf::Header> root)707 inline void FinishSizePrefixedHeaderBuffer(
708 flatbuffers::FlatBufferBuilder &fbb,
709 flatbuffers::Offset<FlatGeobuf::Header> root) {
710 fbb.FinishSizePrefixed(root);
711 }
712
713 } // namespace FlatGeobuf
714
715 #endif // FLATBUFFERS_GENERATED_HEADER_FLATGEOBUF_H_
716