diff --git a/include/engine/api/flatbuffers/fbresult.fbs b/include/engine/api/flatbuffers/fbresult.fbs index 0ca94bff2..a587899a3 100644 --- a/include/engine/api/flatbuffers/fbresult.fbs +++ b/include/engine/api/flatbuffers/fbresult.fbs @@ -15,4 +15,6 @@ table FBResult { waypoints: [Waypoint]; //Used as 'sources' waypoints for a 'Table' service routes: [RouteObject]; table: Table; -} \ No newline at end of file +} + +root_type FBResult; \ No newline at end of file diff --git a/include/engine/api/flatbuffers/fbresult_generated.h b/include/engine/api/flatbuffers/fbresult_generated.h index 81ce98f19..8c2737bee 100644 --- a/include/engine/api/flatbuffers/fbresult_generated.h +++ b/include/engine/api/flatbuffers/fbresult_generated.h @@ -1536,12 +1536,14 @@ flatbuffers::Offset CreateRouteObject(flatbuffers::FlatBufferBuilde struct TableT : public flatbuffers::NativeTable { typedef Table TableType; std::vector durations; - std::vector rows; - std::vector cols; + uint16_t rows; + uint16_t cols; std::vector distances; std::vector> destinations; std::vector fallback_speed_cells; - TableT() { + TableT() + : rows(0), + cols(0) { } }; @@ -1558,11 +1560,11 @@ struct Table FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const flatbuffers::Vector *durations() const { return GetPointer *>(VT_DURATIONS); } - const flatbuffers::Vector *rows() const { - return GetPointer *>(VT_ROWS); + uint16_t rows() const { + return GetField(VT_ROWS, 0); } - const flatbuffers::Vector *cols() const { - return GetPointer *>(VT_COLS); + uint16_t cols() const { + return GetField(VT_COLS, 0); } const flatbuffers::Vector *distances() const { return GetPointer *>(VT_DISTANCES); @@ -1577,10 +1579,8 @@ struct Table FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_DURATIONS) && verifier.VerifyVector(durations()) && - VerifyOffset(verifier, VT_ROWS) && - verifier.VerifyVector(rows()) && - VerifyOffset(verifier, VT_COLS) && - verifier.VerifyVector(cols()) && + VerifyField(verifier, VT_ROWS) && + VerifyField(verifier, VT_COLS) && VerifyOffset(verifier, VT_DISTANCES) && verifier.VerifyVector(distances()) && VerifyOffset(verifier, VT_DESTINATIONS) && @@ -1601,11 +1601,11 @@ struct TableBuilder { void add_durations(flatbuffers::Offset> durations) { fbb_.AddOffset(Table::VT_DURATIONS, durations); } - void add_rows(flatbuffers::Offset> rows) { - fbb_.AddOffset(Table::VT_ROWS, rows); + void add_rows(uint16_t rows) { + fbb_.AddElement(Table::VT_ROWS, rows, 0); } - void add_cols(flatbuffers::Offset> cols) { - fbb_.AddOffset(Table::VT_COLS, cols); + void add_cols(uint16_t cols) { + fbb_.AddElement(Table::VT_COLS, cols, 0); } void add_distances(flatbuffers::Offset> distances) { fbb_.AddOffset(Table::VT_DISTANCES, distances); @@ -1631,8 +1631,8 @@ struct TableBuilder { inline flatbuffers::Offset CreateTable( flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset> durations = 0, - flatbuffers::Offset> rows = 0, - flatbuffers::Offset> cols = 0, + uint16_t rows = 0, + uint16_t cols = 0, flatbuffers::Offset> distances = 0, flatbuffers::Offset>> destinations = 0, flatbuffers::Offset> fallback_speed_cells = 0) { @@ -1640,31 +1640,29 @@ inline flatbuffers::Offset
CreateTable( builder_.add_fallback_speed_cells(fallback_speed_cells); builder_.add_destinations(destinations); builder_.add_distances(distances); + builder_.add_durations(durations); builder_.add_cols(cols); builder_.add_rows(rows); - builder_.add_durations(durations); return builder_.Finish(); } inline flatbuffers::Offset
CreateTableDirect( flatbuffers::FlatBufferBuilder &_fbb, const std::vector *durations = nullptr, - const std::vector *rows = nullptr, - const std::vector *cols = nullptr, + uint16_t rows = 0, + uint16_t cols = 0, const std::vector *distances = nullptr, const std::vector> *destinations = nullptr, const std::vector *fallback_speed_cells = nullptr) { auto durations__ = durations ? _fbb.CreateVector(*durations) : 0; - auto rows__ = rows ? _fbb.CreateVector(*rows) : 0; - auto cols__ = cols ? _fbb.CreateVector(*cols) : 0; auto distances__ = distances ? _fbb.CreateVector(*distances) : 0; auto destinations__ = destinations ? _fbb.CreateVector>(*destinations) : 0; auto fallback_speed_cells__ = fallback_speed_cells ? _fbb.CreateVector(*fallback_speed_cells) : 0; return osrm::engine::api::fbresult::CreateTable( _fbb, durations__, - rows__, - cols__, + rows, + cols, distances__, destinations__, fallback_speed_cells__); @@ -2290,8 +2288,8 @@ inline void Table::UnPackTo(TableT *_o, const flatbuffers::resolver_function_t * (void)_o; (void)_resolver; { auto _e = durations(); if (_e) { _o->durations.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->durations[_i] = _e->Get(_i); } } }; - { auto _e = rows(); if (_e) { _o->rows.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->rows[_i] = _e->Get(_i); } } }; - { auto _e = cols(); if (_e) { _o->cols.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->cols[_i] = _e->Get(_i); } } }; + { auto _e = rows(); _o->rows = _e; }; + { auto _e = cols(); _o->cols = _e; }; { auto _e = distances(); if (_e) { _o->distances.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->distances[_i] = _e->Get(_i); } } }; { auto _e = destinations(); if (_e) { _o->destinations.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->destinations[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } }; { auto _e = fallback_speed_cells(); if (_e) { _o->fallback_speed_cells.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->fallback_speed_cells[_i] = _e->Get(_i); } } }; @@ -2306,8 +2304,8 @@ inline flatbuffers::Offset
CreateTable(flatbuffers::FlatBufferBuilder &_f (void)_o; struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TableT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _durations = _o->durations.size() ? _fbb.CreateVector(_o->durations) : 0; - auto _rows = _o->rows.size() ? _fbb.CreateVector(_o->rows) : 0; - auto _cols = _o->cols.size() ? _fbb.CreateVector(_o->cols) : 0; + auto _rows = _o->rows; + auto _cols = _o->cols; auto _distances = _o->distances.size() ? _fbb.CreateVector(_o->distances) : 0; auto _destinations = _o->destinations.size() ? _fbb.CreateVector> (_o->destinations.size(), [](size_t i, _VectorArgs *__va) { return CreateWaypoint(*__va->__fbb, __va->__o->destinations[i].get(), __va->__rehasher); }, &_va ) : 0; auto _fallback_speed_cells = _o->fallback_speed_cells.size() ? _fbb.CreateVector(_o->fallback_speed_cells) : 0; @@ -2391,6 +2389,48 @@ inline flatbuffers::Offset CreateFBResult(flatbuffers::FlatBufferBuild _table); } +inline const osrm::engine::api::fbresult::FBResult *GetFBResult(const void *buf) { + return flatbuffers::GetRoot(buf); +} + +inline const osrm::engine::api::fbresult::FBResult *GetSizePrefixedFBResult(const void *buf) { + return flatbuffers::GetSizePrefixedRoot(buf); +} + +inline bool VerifyFBResultBuffer( + flatbuffers::Verifier &verifier) { + return verifier.VerifyBuffer(nullptr); +} + +inline bool VerifySizePrefixedFBResultBuffer( + flatbuffers::Verifier &verifier) { + return verifier.VerifySizePrefixedBuffer(nullptr); +} + +inline void FinishFBResultBuffer( + flatbuffers::FlatBufferBuilder &fbb, + flatbuffers::Offset root) { + fbb.Finish(root); +} + +inline void FinishSizePrefixedFBResultBuffer( + flatbuffers::FlatBufferBuilder &fbb, + flatbuffers::Offset root) { + fbb.FinishSizePrefixed(root); +} + +inline std::unique_ptr UnPackFBResult( + const void *buf, + const flatbuffers::resolver_function_t *res = nullptr) { + return std::unique_ptr(GetFBResult(buf)->UnPack(res)); +} + +inline std::unique_ptr UnPackSizePrefixedFBResult( + const void *buf, + const flatbuffers::resolver_function_t *res = nullptr) { + return std::unique_ptr(GetSizePrefixedFBResult(buf)->UnPack(res)); +} + } // namespace fbresult } // namespace api } // namespace engine diff --git a/include/engine/api/flatbuffers/table.fbs b/include/engine/api/flatbuffers/table.fbs index 0db5abb8f..caf1855e6 100644 --- a/include/engine/api/flatbuffers/table.fbs +++ b/include/engine/api/flatbuffers/table.fbs @@ -3,8 +3,8 @@ namespace osrm.engine.api.fbresult; table Table { durations: [float]; - rows: [ushort]; - cols: [ushort]; + rows: ushort; + cols: ushort; distances: [float]; destinations: [Waypoint]; fallback_speed_cells: [uint];