rename JSON namespace to osrm::json to avoid namespace clash with V8

This commit is contained in:
Dennis Luxen 2015-02-18 10:46:40 +01:00
parent 9e09168597
commit 79b9bdf7ce
24 changed files with 109 additions and 98 deletions

View File

@ -32,21 +32,21 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <osrm/coordinate.hpp> #include <osrm/coordinate.hpp>
JSON::String osrm::json::String
PolylineFormatter::printEncodedString(const std::vector<SegmentInformation> &polyline) const PolylineFormatter::printEncodedString(const std::vector<SegmentInformation> &polyline) const
{ {
return JSON::String(PolylineCompressor().get_encoded_string(polyline)); return osrm::json::String(PolylineCompressor().get_encoded_string(polyline));
} }
JSON::Array osrm::json::Array
PolylineFormatter::printUnencodedString(const std::vector<SegmentInformation> &polyline) const PolylineFormatter::printUnencodedString(const std::vector<SegmentInformation> &polyline) const
{ {
JSON::Array json_geometry_array; osrm::json::Array json_geometry_array;
for (const auto &segment : polyline) for (const auto &segment : polyline)
{ {
if (segment.necessary) if (segment.necessary)
{ {
JSON::Array json_coordinate; osrm::json::Array json_coordinate;
json_coordinate.values.push_back(segment.location.lat / COORDINATE_PRECISION); json_coordinate.values.push_back(segment.location.lat / COORDINATE_PRECISION);
json_coordinate.values.push_back(segment.location.lon / COORDINATE_PRECISION); json_coordinate.values.push_back(segment.location.lon / COORDINATE_PRECISION);
json_geometry_array.values.push_back(json_coordinate); json_geometry_array.values.push_back(json_coordinate);

View File

@ -37,9 +37,9 @@ struct SegmentInformation;
struct PolylineFormatter struct PolylineFormatter
{ {
JSON::String printEncodedString(const std::vector<SegmentInformation> &polyline) const; osrm::json::String printEncodedString(const std::vector<SegmentInformation> &polyline) const;
JSON::Array printUnencodedString(const std::vector<SegmentInformation> &polyline) const; osrm::json::Array printUnencodedString(const std::vector<SegmentInformation> &polyline) const;
}; };
#endif /* POLYLINE_FORMATTER_HPP */ #endif /* POLYLINE_FORMATTER_HPP */

View File

@ -98,7 +98,7 @@ void DescriptionFactory::AppendSegment(const FixedPointCoordinate &coordinate,
turn, path_point.travel_mode); turn, path_point.travel_mode);
} }
JSON::Value DescriptionFactory::AppendGeometryString(const bool return_encoded) osrm::json::Value DescriptionFactory::AppendGeometryString(const bool return_encoded)
{ {
if (return_encoded) if (return_encoded)
{ {

View File

@ -85,7 +85,7 @@ class DescriptionFactory
void SetEndSegment(const PhantomNode &start_phantom, void SetEndSegment(const PhantomNode &start_phantom,
const bool traversed_in_reverse, const bool traversed_in_reverse,
const bool is_via_location = false); const bool is_via_location = false);
JSON::Value AppendGeometryString(const bool return_encoded); osrm::json::Value AppendGeometryString(const bool return_encoded);
std::vector<unsigned> const &GetViaIndices() const; std::vector<unsigned> const &GetViaIndices() const;
double get_entire_length() const { return entire_length; } double get_entire_length() const { return entire_length; }

View File

@ -78,7 +78,7 @@ template <class DataFacadeT> class BaseDescriptor
BaseDescriptor() {} BaseDescriptor() {}
// Maybe someone can explain the pure virtual destructor thing to me (dennis) // Maybe someone can explain the pure virtual destructor thing to me (dennis)
virtual ~BaseDescriptor() {} virtual ~BaseDescriptor() {}
virtual void Run(const InternalRouteResult &raw_route, JSON::Object &json_result) = 0; virtual void Run(const InternalRouteResult &raw_route, osrm::json::Object &json_result) = 0;
virtual void SetConfig(const DescriptorConfig &c) = 0; virtual void SetConfig(const DescriptorConfig &c) = 0;
}; };

View File

@ -41,11 +41,11 @@ template <class DataFacadeT> class GPXDescriptor final : public BaseDescriptor<D
DescriptorConfig config; DescriptorConfig config;
DataFacadeT *facade; DataFacadeT *facade;
void AddRoutePoint(const FixedPointCoordinate &coordinate, JSON::Array &json_route) void AddRoutePoint(const FixedPointCoordinate &coordinate, osrm::json::Array &json_route)
{ {
JSON::Object json_lat; osrm::json::Object json_lat;
JSON::Object json_lon; osrm::json::Object json_lon;
JSON::Array json_row; osrm::json::Array json_row;
std::string tmp; std::string tmp;
@ -57,7 +57,7 @@ template <class DataFacadeT> class GPXDescriptor final : public BaseDescriptor<D
json_row.values.push_back(json_lat); json_row.values.push_back(json_lat);
json_row.values.push_back(json_lon); json_row.values.push_back(json_lon);
JSON::Object entry; osrm::json::Object entry;
entry.values["rtept"] = json_row; entry.values["rtept"] = json_row;
json_route.values.push_back(entry); json_route.values.push_back(entry);
} }
@ -67,9 +67,9 @@ template <class DataFacadeT> class GPXDescriptor final : public BaseDescriptor<D
virtual void SetConfig(const DescriptorConfig &c) final { config = c; } virtual void SetConfig(const DescriptorConfig &c) final { config = c; }
virtual void Run(const InternalRouteResult &raw_route, JSON::Object &json_result) final virtual void Run(const InternalRouteResult &raw_route, osrm::json::Object &json_result) final
{ {
JSON::Array json_route; osrm::json::Array json_route;
if (raw_route.shortest_path_length != INVALID_EDGE_WEIGHT) if (raw_route.shortest_path_length != INVALID_EDGE_WEIGHT)
{ {
AddRoutePoint(raw_route.segment_end_coordinates.front().source_phantom.location, AddRoutePoint(raw_route.segment_end_coordinates.front().source_phantom.location,
@ -87,7 +87,7 @@ template <class DataFacadeT> class GPXDescriptor final : public BaseDescriptor<D
AddRoutePoint(raw_route.segment_end_coordinates.back().target_phantom.location, AddRoutePoint(raw_route.segment_end_coordinates.back().target_phantom.location,
json_route); json_route);
} }
// JSON::gpx_render(reply.content, json_route); // osrm::json::gpx_render(reply.content, json_route);
json_result.values["route"] = json_route; json_result.values["route"] = json_route;
} }
}; };

View File

@ -100,14 +100,15 @@ template <class DataFacadeT> class JSONDescriptor final : public BaseDescriptor<
return added_element_count; return added_element_count;
} }
virtual void Run(const InternalRouteResult &raw_route, JSON::Object &json_result) override final virtual void Run(const InternalRouteResult &raw_route,
osrm::json::Object &json_result) override final
{ {
if (INVALID_EDGE_WEIGHT == raw_route.shortest_path_length) if (INVALID_EDGE_WEIGHT == raw_route.shortest_path_length)
{ {
// We do not need to do much, if there is no route ;-) // We do not need to do much, if there is no route ;-)
json_result.values["status"] = 207; json_result.values["status"] = 207;
json_result.values["status_message"] = "Cannot find route between points"; json_result.values["status_message"] = "Cannot find route between points";
// JSON::render(reply.content, json_result); // osrm::json::render(reply.content, json_result);
return; return;
} }
@ -139,20 +140,20 @@ template <class DataFacadeT> class JSONDescriptor final : public BaseDescriptor<
if (config.geometry) if (config.geometry)
{ {
JSON::Value route_geometry = osrm::json::Value route_geometry =
description_factory.AppendGeometryString(config.encode_geometry); description_factory.AppendGeometryString(config.encode_geometry);
json_result.values["route_geometry"] = route_geometry; json_result.values["route_geometry"] = route_geometry;
} }
if (config.instructions) if (config.instructions)
{ {
JSON::Array json_route_instructions; osrm::json::Array json_route_instructions;
BuildTextualDescription(description_factory, json_route_instructions, BuildTextualDescription(description_factory, json_route_instructions,
raw_route.shortest_path_length, shortest_path_segments); raw_route.shortest_path_length, shortest_path_segments);
json_result.values["route_instructions"] = json_route_instructions; json_result.values["route_instructions"] = json_route_instructions;
} }
description_factory.BuildRouteSummary(description_factory.get_entire_length(), description_factory.BuildRouteSummary(description_factory.get_entire_length(),
raw_route.shortest_path_length); raw_route.shortest_path_length);
JSON::Object json_route_summary; osrm::json::Object json_route_summary;
json_route_summary.values["total_distance"] = description_factory.summary.distance; json_route_summary.values["total_distance"] = description_factory.summary.distance;
json_route_summary.values["total_time"] = description_factory.summary.duration; json_route_summary.values["total_time"] = description_factory.summary.duration;
json_route_summary.values["start_point"] = json_route_summary.values["start_point"] =
@ -163,8 +164,8 @@ template <class DataFacadeT> class JSONDescriptor final : public BaseDescriptor<
BOOST_ASSERT(!raw_route.segment_end_coordinates.empty()); BOOST_ASSERT(!raw_route.segment_end_coordinates.empty());
JSON::Array json_via_points_array; osrm::json::Array json_via_points_array;
JSON::Array json_first_coordinate; osrm::json::Array json_first_coordinate;
json_first_coordinate.values.push_back( json_first_coordinate.values.push_back(
raw_route.segment_end_coordinates.front().source_phantom.location.lat / raw_route.segment_end_coordinates.front().source_phantom.location.lat /
COORDINATE_PRECISION); COORDINATE_PRECISION);
@ -175,7 +176,7 @@ template <class DataFacadeT> class JSONDescriptor final : public BaseDescriptor<
for (const PhantomNodes &nodes : raw_route.segment_end_coordinates) for (const PhantomNodes &nodes : raw_route.segment_end_coordinates)
{ {
std::string tmp; std::string tmp;
JSON::Array json_coordinate; osrm::json::Array json_coordinate;
json_coordinate.values.push_back(nodes.target_phantom.location.lat / json_coordinate.values.push_back(nodes.target_phantom.location.lat /
COORDINATE_PRECISION); COORDINATE_PRECISION);
json_coordinate.values.push_back(nodes.target_phantom.location.lon / json_coordinate.values.push_back(nodes.target_phantom.location.lon /
@ -184,7 +185,7 @@ template <class DataFacadeT> class JSONDescriptor final : public BaseDescriptor<
} }
json_result.values["via_points"] = json_via_points_array; json_result.values["via_points"] = json_via_points_array;
JSON::Array json_via_indices_array; osrm::json::Array json_via_indices_array;
std::vector<unsigned> const &shortest_leg_end_indices = description_factory.GetViaIndices(); std::vector<unsigned> const &shortest_leg_end_indices = description_factory.GetViaIndices();
json_via_indices_array.values.insert(json_via_indices_array.values.end(), json_via_indices_array.values.insert(json_via_indices_array.values.end(),
@ -195,7 +196,7 @@ template <class DataFacadeT> class JSONDescriptor final : public BaseDescriptor<
// only one alternative route is computed at this time, so this is hardcoded // only one alternative route is computed at this time, so this is hardcoded
if (INVALID_EDGE_WEIGHT != raw_route.alternative_path_length) if (INVALID_EDGE_WEIGHT != raw_route.alternative_path_length)
{ {
json_result.values["found_alternative"] = JSON::True(); json_result.values["found_alternative"] = osrm::json::True();
BOOST_ASSERT(!raw_route.alt_source_traversed_in_reverse.empty()); BOOST_ASSERT(!raw_route.alt_source_traversed_in_reverse.empty());
alternate_description_factory.SetStartSegment( alternate_description_factory.SetStartSegment(
raw_route.segment_end_coordinates.front().source_phantom, raw_route.segment_end_coordinates.front().source_phantom,
@ -213,15 +214,15 @@ template <class DataFacadeT> class JSONDescriptor final : public BaseDescriptor<
if (config.geometry) if (config.geometry)
{ {
JSON::Value alternate_geometry_string = osrm::json::Value alternate_geometry_string =
alternate_description_factory.AppendGeometryString(config.encode_geometry); alternate_description_factory.AppendGeometryString(config.encode_geometry);
JSON::Array json_alternate_geometries_array; osrm::json::Array json_alternate_geometries_array;
json_alternate_geometries_array.values.push_back(alternate_geometry_string); json_alternate_geometries_array.values.push_back(alternate_geometry_string);
json_result.values["alternative_geometries"] = json_alternate_geometries_array; json_result.values["alternative_geometries"] = json_alternate_geometries_array;
} }
// Generate instructions for each alternative (simulated here) // Generate instructions for each alternative (simulated here)
JSON::Array json_alt_instructions; osrm::json::Array json_alt_instructions;
JSON::Array json_current_alt_instructions; osrm::json::Array json_current_alt_instructions;
if (config.instructions) if (config.instructions)
{ {
BuildTextualDescription( BuildTextualDescription(
@ -234,8 +235,8 @@ template <class DataFacadeT> class JSONDescriptor final : public BaseDescriptor<
alternate_description_factory.get_entire_length(), alternate_description_factory.get_entire_length(),
raw_route.alternative_path_length); raw_route.alternative_path_length);
JSON::Object json_alternate_route_summary; osrm::json::Object json_alternate_route_summary;
JSON::Array json_alternate_route_summary_array; osrm::json::Array json_alternate_route_summary_array;
json_alternate_route_summary.values["total_distance"] = json_alternate_route_summary.values["total_distance"] =
alternate_description_factory.summary.distance; alternate_description_factory.summary.distance;
json_alternate_route_summary.values["total_time"] = json_alternate_route_summary.values["total_time"] =
@ -249,7 +250,7 @@ template <class DataFacadeT> class JSONDescriptor final : public BaseDescriptor<
std::vector<unsigned> const &alternate_leg_end_indices = std::vector<unsigned> const &alternate_leg_end_indices =
alternate_description_factory.GetViaIndices(); alternate_description_factory.GetViaIndices();
JSON::Array json_altenative_indices_array; osrm::json::Array json_altenative_indices_array;
json_altenative_indices_array.values.insert(json_altenative_indices_array.values.end(), json_altenative_indices_array.values.insert(json_altenative_indices_array.values.end(),
alternate_leg_end_indices.begin(), alternate_leg_end_indices.begin(),
alternate_leg_end_indices.end()); alternate_leg_end_indices.end());
@ -257,30 +258,30 @@ template <class DataFacadeT> class JSONDescriptor final : public BaseDescriptor<
} }
else else
{ {
json_result.values["found_alternative"] = JSON::False(); json_result.values["found_alternative"] = osrm::json::False();
} }
// Get Names for both routes // Get Names for both routes
RouteNames route_names = RouteNames route_names =
GenerateRouteNames(shortest_path_segments, alternative_path_segments, facade); GenerateRouteNames(shortest_path_segments, alternative_path_segments, facade);
JSON::Array json_route_names; osrm::json::Array json_route_names;
json_route_names.values.push_back(route_names.shortest_path_name_1); json_route_names.values.push_back(route_names.shortest_path_name_1);
json_route_names.values.push_back(route_names.shortest_path_name_2); json_route_names.values.push_back(route_names.shortest_path_name_2);
json_result.values["route_name"] = json_route_names; json_result.values["route_name"] = json_route_names;
if (INVALID_EDGE_WEIGHT != raw_route.alternative_path_length) if (INVALID_EDGE_WEIGHT != raw_route.alternative_path_length)
{ {
JSON::Array json_alternate_names_array; osrm::json::Array json_alternate_names_array;
JSON::Array json_alternate_names; osrm::json::Array json_alternate_names;
json_alternate_names.values.push_back(route_names.alternative_path_name_1); json_alternate_names.values.push_back(route_names.alternative_path_name_1);
json_alternate_names.values.push_back(route_names.alternative_path_name_2); json_alternate_names.values.push_back(route_names.alternative_path_name_2);
json_alternate_names_array.values.push_back(json_alternate_names); json_alternate_names_array.values.push_back(json_alternate_names);
json_result.values["alternative_names"] = json_alternate_names_array; json_result.values["alternative_names"] = json_alternate_names_array;
} }
JSON::Object json_hint_object; osrm::json::Object json_hint_object;
json_hint_object.values["checksum"] = facade->GetCheckSum(); json_hint_object.values["checksum"] = facade->GetCheckSum();
JSON::Array json_location_hint_array; osrm::json::Array json_location_hint_array;
std::string hint; std::string hint;
for (const auto i : osrm::irange<std::size_t>(0, raw_route.segment_end_coordinates.size())) for (const auto i : osrm::irange<std::size_t>(0, raw_route.segment_end_coordinates.size()))
{ {
@ -296,14 +297,14 @@ template <class DataFacadeT> class JSONDescriptor final : public BaseDescriptor<
// render the content to the output array // render the content to the output array
// TIMER_START(route_render); // TIMER_START(route_render);
// JSON::render(reply.content, json_result); // osrm::json::render(reply.content, json_result);
// TIMER_STOP(route_render); // TIMER_STOP(route_render);
// SimpleLogger().Write(logDEBUG) << "rendering took: " << TIMER_MSEC(route_render); // SimpleLogger().Write(logDEBUG) << "rendering took: " << TIMER_MSEC(route_render);
} }
// TODO: reorder parameters // TODO: reorder parameters
inline void BuildTextualDescription(DescriptionFactory &description_factory, inline void BuildTextualDescription(DescriptionFactory &description_factory,
JSON::Array &json_instruction_array, osrm::json::Array &json_instruction_array,
const int route_length, const int route_length,
std::vector<Segment> &route_segments_list) std::vector<Segment> &route_segments_list)
{ {
@ -317,7 +318,7 @@ template <class DataFacadeT> class JSONDescriptor final : public BaseDescriptor<
// Fetch data from Factory and generate a string from it. // Fetch data from Factory and generate a string from it.
for (const SegmentInformation &segment : description_factory.path_description) for (const SegmentInformation &segment : description_factory.path_description)
{ {
JSON::Array json_instruction_row; osrm::json::Array json_instruction_row;
TurnInstruction current_instruction = segment.turn_instruction; TurnInstruction current_instruction = segment.turn_instruction;
entered_restricted_area_count += (current_instruction != segment.turn_instruction); entered_restricted_area_count += (current_instruction != segment.turn_instruction);
if (TurnInstructionsClass::TurnIsNecessary(current_instruction)) if (TurnInstructionsClass::TurnIsNecessary(current_instruction))
@ -377,7 +378,7 @@ template <class DataFacadeT> class JSONDescriptor final : public BaseDescriptor<
} }
} }
JSON::Array json_last_instruction_row; osrm::json::Array json_last_instruction_row;
temp_instruction = cast::integral_to_string( temp_instruction = cast::integral_to_string(
cast::enum_to_underlying(TurnInstruction::ReachedYourDestination)); cast::enum_to_underlying(TurnInstruction::ReachedYourDestination));
json_last_instruction_row.values.push_back(temp_instruction); json_last_instruction_row.values.push_back(temp_instruction);

View File

@ -31,6 +31,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <boost/filesystem.hpp> #include <boost/filesystem.hpp>
#include <exception>
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
try try

View File

@ -28,8 +28,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// based on // based on
// https://svn.apache.org/repos/asf/mesos/tags/release-0.9.0-incubating-RC0/src/common/json.hpp // https://svn.apache.org/repos/asf/mesos/tags/release-0.9.0-incubating-RC0/src/common/json.hpp
#ifndef JSON_CONTAINER_H #ifndef JSON_CONTAINER_HPP
#define JSON_CONTAINER_H #define JSON_CONTAINER_HPP
#include <variant/variant.hpp> #include <variant/variant.hpp>
@ -38,7 +38,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <string> #include <string>
#include <unordered_map> #include <unordered_map>
namespace JSON namespace osrm
{
namespace json
{ {
struct Object; struct Object;
@ -90,5 +92,5 @@ struct Array
}; };
} // namespace JSON } // namespace JSON
} // namespace osrm
#endif // JSON_CONTAINER_H #endif // JSON_CONTAINER_HPP

View File

@ -35,10 +35,13 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
class OSRM_impl; class OSRM_impl;
struct RouteParameters; struct RouteParameters;
namespace JSON namespace osrm
{
namespace json
{ {
struct Object; struct Object;
} }
}
class OSRM class OSRM
{ {
@ -48,7 +51,7 @@ class OSRM
public: public:
explicit OSRM(libosrm_config &lib_config); explicit OSRM(libosrm_config &lib_config);
~OSRM(); ~OSRM();
int RunQuery(RouteParameters &route_parameters, JSON::Object &json_result); int RunQuery(RouteParameters &route_parameters, osrm::json::Object &json_result);
}; };
#endif // OSRM_HPP #endif // OSRM_HPP

View File

@ -104,7 +104,7 @@ void OSRM_impl::RegisterPlugin(BasePlugin *plugin)
plugin_map.emplace(plugin->GetDescriptor(), plugin); plugin_map.emplace(plugin->GetDescriptor(), plugin);
} }
int OSRM_impl::RunQuery(RouteParameters &route_parameters, JSON::Object &json_result) int OSRM_impl::RunQuery(RouteParameters &route_parameters, osrm::json::Object &json_result)
{ {
const auto &plugin_iterator = plugin_map.find(route_parameters.service); const auto &plugin_iterator = plugin_map.find(route_parameters.service);
@ -172,7 +172,7 @@ OSRM::OSRM(libosrm_config &lib_config) : OSRM_pimpl_(osrm::make_unique<OSRM_impl
OSRM::~OSRM() { OSRM_pimpl_.reset(); } OSRM::~OSRM() { OSRM_pimpl_.reset(); }
int OSRM::RunQuery(RouteParameters &route_parameters, JSON::Object &json_result) int OSRM::RunQuery(RouteParameters &route_parameters, osrm::json::Object &json_result)
{ {
return OSRM_pimpl_->RunQuery(route_parameters, json_result); return OSRM_pimpl_->RunQuery(route_parameters, json_result);
} }

View File

@ -52,7 +52,7 @@ class OSRM_impl
OSRM_impl(libosrm_config &lib_config); OSRM_impl(libosrm_config &lib_config);
OSRM_impl(const OSRM_impl &) = delete; OSRM_impl(const OSRM_impl &) = delete;
virtual ~OSRM_impl(); virtual ~OSRM_impl();
int RunQuery(RouteParameters &route_parameters, JSON::Object &json_result); int RunQuery(RouteParameters &route_parameters, osrm::json::Object &json_result);
private: private:
void RegisterPlugin(BasePlugin *plugin); void RegisterPlugin(BasePlugin *plugin);

View File

@ -68,7 +68,7 @@ template <class DataFacadeT> class DistanceTablePlugin final : public BasePlugin
const std::string GetDescriptor() const override final { return descriptor_string; } const std::string GetDescriptor() const override final { return descriptor_string; }
int HandleRequest(const RouteParameters &route_parameters, int HandleRequest(const RouteParameters &route_parameters,
JSON::Object &json_result) override final osrm::json::Object &json_result) override final
{ {
if (!check_all_coordinates(route_parameters.coordinates)) if (!check_all_coordinates(route_parameters.coordinates))
{ {
@ -110,18 +110,18 @@ template <class DataFacadeT> class DistanceTablePlugin final : public BasePlugin
return 400; return 400;
} }
JSON::Array json_array; osrm::json::Array json_array;
const auto number_of_locations = phantom_node_vector.size(); const auto number_of_locations = phantom_node_vector.size();
for (const auto row : osrm::irange<std::size_t>(0, number_of_locations)) for (const auto row : osrm::irange<std::size_t>(0, number_of_locations))
{ {
JSON::Array json_row; osrm::json::Array json_row;
auto row_begin_iterator = result_table->begin() + (row * number_of_locations); auto row_begin_iterator = result_table->begin() + (row * number_of_locations);
auto row_end_iterator = result_table->begin() + ((row + 1) * number_of_locations); auto row_end_iterator = result_table->begin() + ((row + 1) * number_of_locations);
json_row.values.insert(json_row.values.end(), row_begin_iterator, row_end_iterator); json_row.values.insert(json_row.values.end(), row_begin_iterator, row_end_iterator);
json_array.values.push_back(json_row); json_array.values.push_back(json_row);
} }
json_result.values["distance_table"] = json_array; json_result.values["distance_table"] = json_array;
// JSON::render(reply.content, json_object); // osrm::json::render(reply.content, json_object);
return 200; return 200;
} }

View File

@ -48,7 +48,7 @@ class HelloWorldPlugin final : public BasePlugin
const std::string GetDescriptor() const override final { return descriptor_string; } const std::string GetDescriptor() const override final { return descriptor_string; }
int HandleRequest(const RouteParameters &routeParameters, int HandleRequest(const RouteParameters &routeParameters,
JSON::Object &json_result) override final osrm::json::Object &json_result) override final
{ {
std::string temp_string; std::string temp_string;
json_result.values["title"] = "Hello World"; json_result.values["title"] = "Hello World";
@ -71,12 +71,12 @@ class HelloWorldPlugin final : public BasePlugin
temp_string = cast::integral_to_string(routeParameters.coordinates.size()); temp_string = cast::integral_to_string(routeParameters.coordinates.size());
json_result.values["location_count"] = temp_string; json_result.values["location_count"] = temp_string;
JSON::Array json_locations; osrm::json::Array json_locations;
unsigned counter = 0; unsigned counter = 0;
for (const FixedPointCoordinate &coordinate : routeParameters.coordinates) for (const FixedPointCoordinate &coordinate : routeParameters.coordinates)
{ {
JSON::Object json_location; osrm::json::Object json_location;
JSON::Array json_coordinates; osrm::json::Array json_coordinates;
json_coordinates.values.push_back( json_coordinates.values.push_back(
static_cast<double>(coordinate.lat / COORDINATE_PRECISION)); static_cast<double>(coordinate.lat / COORDINATE_PRECISION));
@ -89,7 +89,7 @@ class HelloWorldPlugin final : public BasePlugin
json_result.values["locations"] = json_locations; json_result.values["locations"] = json_locations;
json_result.values["hint_count"] = routeParameters.hints.size(); json_result.values["hint_count"] = routeParameters.hints.size();
JSON::Array json_hints; osrm::json::Array json_hints;
counter = 0; counter = 0;
for (const std::string &current_hint : routeParameters.hints) for (const std::string &current_hint : routeParameters.hints)
{ {

View File

@ -45,7 +45,7 @@ template <class DataFacadeT> class LocatePlugin final : public BasePlugin
const std::string GetDescriptor() const override final { return descriptor_string; } const std::string GetDescriptor() const override final { return descriptor_string; }
int HandleRequest(const RouteParameters &route_parameters, int HandleRequest(const RouteParameters &route_parameters,
JSON::Object &json_result) override final osrm::json::Object &json_result) override final
{ {
// check number of parameters // check number of parameters
if (route_parameters.coordinates.empty() || if (route_parameters.coordinates.empty() ||
@ -63,7 +63,7 @@ template <class DataFacadeT> class LocatePlugin final : public BasePlugin
else else
{ {
json_result.values["status"] = 0; json_result.values["status"] = 0;
JSON::Array json_coordinate; osrm::json::Array json_coordinate;
json_coordinate.values.push_back(result.lat / COORDINATE_PRECISION); json_coordinate.values.push_back(result.lat / COORDINATE_PRECISION);
json_coordinate.values.push_back(result.lon / COORDINATE_PRECISION); json_coordinate.values.push_back(result.lon / COORDINATE_PRECISION);
json_result.values["mapped_coordinate"] = json_coordinate; json_result.values["mapped_coordinate"] = json_coordinate;

View File

@ -50,7 +50,7 @@ template <class DataFacadeT> class NearestPlugin final : public BasePlugin
const std::string GetDescriptor() const override final { return descriptor_string; } const std::string GetDescriptor() const override final { return descriptor_string; }
int HandleRequest(const RouteParameters &route_parameters, int HandleRequest(const RouteParameters &route_parameters,
JSON::Object &json_result) override final osrm::json::Object &json_result) override final
{ {
// check number of parameters // check number of parameters
if (route_parameters.coordinates.empty() || if (route_parameters.coordinates.empty() ||
@ -75,14 +75,14 @@ template <class DataFacadeT> class NearestPlugin final : public BasePlugin
if (number_of_results > 1) if (number_of_results > 1)
{ {
JSON::Array results; osrm::json::Array results;
auto vector_length = phantom_node_vector.size(); auto vector_length = phantom_node_vector.size();
for (const auto i : for (const auto i :
osrm::irange<std::size_t>(0, std::min(number_of_results, vector_length))) osrm::irange<std::size_t>(0, std::min(number_of_results, vector_length)))
{ {
JSON::Array json_coordinate; osrm::json::Array json_coordinate;
JSON::Object result; osrm::json::Object result;
json_coordinate.values.push_back(phantom_node_vector.at(i).location.lat / json_coordinate.values.push_back(phantom_node_vector.at(i).location.lat /
COORDINATE_PRECISION); COORDINATE_PRECISION);
json_coordinate.values.push_back(phantom_node_vector.at(i).location.lon / json_coordinate.values.push_back(phantom_node_vector.at(i).location.lon /
@ -97,7 +97,7 @@ template <class DataFacadeT> class NearestPlugin final : public BasePlugin
} }
else else
{ {
JSON::Array json_coordinate; osrm::json::Array json_coordinate;
json_coordinate.values.push_back(phantom_node_vector.front().location.lat / json_coordinate.values.push_back(phantom_node_vector.front().location.lat /
COORDINATE_PRECISION); COORDINATE_PRECISION);
json_coordinate.values.push_back(phantom_node_vector.front().location.lon / json_coordinate.values.push_back(phantom_node_vector.front().location.lon /

View File

@ -42,12 +42,11 @@ class BasePlugin
// Maybe someone can explain the pure virtual destructor thing to me (dennis) // Maybe someone can explain the pure virtual destructor thing to me (dennis)
virtual ~BasePlugin() {} virtual ~BasePlugin() {}
virtual const std::string GetDescriptor() const = 0; virtual const std::string GetDescriptor() const = 0;
virtual int HandleRequest(const RouteParameters &, JSON::Object &) = 0; virtual int HandleRequest(const RouteParameters &, osrm::json::Object &) = 0;
virtual bool check_all_coordinates(const std::vector<FixedPointCoordinate> &coordinates) const final virtual bool
check_all_coordinates(const std::vector<FixedPointCoordinate> &coordinates) const final
{ {
if (2 > coordinates.size() || if (2 > coordinates.size() || std::any_of(std::begin(coordinates), std::end(coordinates),
std::any_of(std::begin(coordinates),
std::end(coordinates),
[](const FixedPointCoordinate &coordinate) [](const FixedPointCoordinate &coordinate)
{ {
return !coordinate.is_valid(); return !coordinate.is_valid();

View File

@ -45,7 +45,7 @@ template <class DataFacadeT> class TimestampPlugin final : public BasePlugin
} }
const std::string GetDescriptor() const override final { return descriptor_string; } const std::string GetDescriptor() const override final { return descriptor_string; }
int HandleRequest(const RouteParameters &route_parameters, int HandleRequest(const RouteParameters &route_parameters,
JSON::Object &json_result) override final osrm::json::Object &json_result) override final
{ {
json_result.values["status"] = 0; json_result.values["status"] = 0;
const std::string timestamp = facade->GetTimestamp(); const std::string timestamp = facade->GetTimestamp();

View File

@ -72,7 +72,7 @@ template <class DataFacadeT> class ViaRoutePlugin final : public BasePlugin
const std::string GetDescriptor() const override final { return descriptor_string; } const std::string GetDescriptor() const override final { return descriptor_string; }
int HandleRequest(const RouteParameters &route_parameters, int HandleRequest(const RouteParameters &route_parameters,
JSON::Object &json_result) override final osrm::json::Object &json_result) override final
{ {
if (!check_all_coordinates(route_parameters.coordinates)) if (!check_all_coordinates(route_parameters.coordinates))
{ {

View File

@ -92,7 +92,7 @@ void RequestHandler::handle_request(const http::request &current_request,
const bool result = const bool result =
boost::spirit::qi::parse(api_iterator, request_string.end(), api_parser); boost::spirit::qi::parse(api_iterator, request_string.end(), api_parser);
JSON::Object json_result; osrm::json::Object json_result;
// check if the was an error with the request // check if the was an error with the request
if (!result || (api_iterator != request_string.end())) if (!result || (api_iterator != request_string.end()))
{ {
@ -104,7 +104,7 @@ void RequestHandler::handle_request(const http::request &current_request,
std::string message = "Query string malformed close to position "; std::string message = "Query string malformed close to position ";
message += cast::integral_to_string(position); message += cast::integral_to_string(position);
json_result.values["status_message"] = message; json_result.values["status_message"] = message;
JSON::render(current_reply.content, json_result); osrm::json::render(current_reply.content, json_result);
return; return;
} }
@ -124,7 +124,7 @@ void RequestHandler::handle_request(const http::request &current_request,
json_result.values["status"] = 400; json_result.values["status"] = 400;
std::string message = "Bad Request"; std::string message = "Bad Request";
json_result.values["status_message"] = message; json_result.values["status_message"] = message;
JSON::render(current_reply.content, json_result); osrm::json::render(current_reply.content, json_result);
return; return;
} }
// set headers // set headers
@ -132,7 +132,7 @@ void RequestHandler::handle_request(const http::request &current_request,
cast::integral_to_string(current_reply.content.size())); cast::integral_to_string(current_reply.content.size()));
if ("gpx" == route_parameters.output_format) if ("gpx" == route_parameters.output_format)
{ // gpx file { // gpx file
JSON::gpx_render(current_reply.content, json_result.values["route"]); osrm::json::gpx_render(current_reply.content, json_result.values["route"]);
current_reply.headers.emplace_back("Content-Type", current_reply.headers.emplace_back("Content-Type",
"application/gpx+xml; charset=UTF-8"); "application/gpx+xml; charset=UTF-8");
current_reply.headers.emplace_back("Content-Disposition", current_reply.headers.emplace_back("Content-Disposition",
@ -140,14 +140,14 @@ void RequestHandler::handle_request(const http::request &current_request,
} }
else if (route_parameters.jsonp_parameter.empty()) else if (route_parameters.jsonp_parameter.empty())
{ // json file { // json file
JSON::render(current_reply.content, json_result); osrm::json::render(current_reply.content, json_result);
current_reply.headers.emplace_back("Content-Type", "application/json; charset=UTF-8"); current_reply.headers.emplace_back("Content-Type", "application/json; charset=UTF-8");
current_reply.headers.emplace_back("Content-Disposition", current_reply.headers.emplace_back("Content-Disposition",
"inline; filename=\"response.json\""); "inline; filename=\"response.json\"");
} }
else else
{ // jsonp { // jsonp
JSON::render(current_reply.content, json_result); osrm::json::render(current_reply.content, json_result);
current_reply.headers.emplace_back("Content-Type", "text/javascript; charset=UTF-8"); current_reply.headers.emplace_back("Content-Type", "text/javascript; charset=UTF-8");
current_reply.headers.emplace_back("Content-Disposition", current_reply.headers.emplace_back("Content-Disposition",
"inline; filename=\"response.js\""); "inline; filename=\"response.js\"");

View File

@ -81,10 +81,10 @@ int main(int argc, const char *argv[])
// target_coordinate // target_coordinate
route_parameters.coordinates.emplace_back(52.513191 * COORDINATE_PRECISION, route_parameters.coordinates.emplace_back(52.513191 * COORDINATE_PRECISION,
13.415852 * COORDINATE_PRECISION); 13.415852 * COORDINATE_PRECISION);
JSON::Object json_result; osrm::json::Object json_result;
const int result_code = routing_machine.RunQuery(route_parameters, json_result); const int result_code = routing_machine.RunQuery(route_parameters, json_result);
SimpleLogger().Write() << "http code: " << result_code; SimpleLogger().Write() << "http code: " << result_code;
JSON::render(SimpleLogger().Write(), json_result); osrm::json::render(SimpleLogger().Write(), json_result);
} }
catch (std::exception &current_exception) catch (std::exception &current_exception)
{ {

View File

@ -1,6 +1,6 @@
/* /*
Copyright (c) 2014, Project OSRM, Dennis Luxen, others Copyright (c) 2015, Project OSRM, Dennis Luxen, others
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, Redistribution and use in source and binary forms, with or without modification,
@ -35,7 +35,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <osrm/json_container.hpp> #include <osrm/json_container.hpp>
namespace JSON namespace osrm
{
namespace json
{ {
struct Renderer : mapbox::util::static_visitor<> struct Renderer : mapbox::util::static_visitor<>
@ -179,6 +181,6 @@ inline void render(std::vector<char> &out, const Object &object)
mapbox::util::apply_visitor(ArrayRenderer(out), value); mapbox::util::apply_visitor(ArrayRenderer(out), value);
} }
} // namespace JSON } // namespace json
} // namespace osrm
#endif // JSON_RENDERER_HPP #endif // JSON_RENDERER_HPP

View File

@ -1,6 +1,6 @@
/* /*
Copyright (c) 2013, Project OSRM, Dennis Luxen, others Copyright (c) 2015, Project OSRM, Dennis Luxen, others
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, Redistribution and use in source and binary forms, with or without modification,

View File

@ -32,7 +32,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <osrm/json_container.hpp> #include <osrm/json_container.hpp>
namespace JSON namespace osrm
{
namespace json
{ {
struct XMLToArrayRenderer : mapbox::util::static_visitor<> struct XMLToArrayRenderer : mapbox::util::static_visitor<>
@ -135,6 +137,6 @@ template <class JSONObject> inline void gpx_render(std::vector<char> &out, const
const std::string footer{"</rte></gpx>"}; const std::string footer{"</rte></gpx>"};
out.insert(out.end(), footer.begin(), footer.end()); out.insert(out.end(), footer.begin(), footer.end());
} }
} // namespace JSON } // namespace json
} // namespace osrm
#endif // XML_RENDERER_HPP #endif // XML_RENDERER_HPP