osrm-backend/include/engine/plugins/hello_world.hpp

88 lines
2.8 KiB
C++
Raw Normal View History

2015-01-27 11:44:46 -05:00
#ifndef HELLO_WORLD_HPP
#define HELLO_WORLD_HPP
2016-01-02 11:13:44 -05:00
#include "engine/plugins/plugin_base.hpp"
2014-11-28 09:13:29 -05:00
2016-01-02 11:13:44 -05:00
#include "osrm/json_container.hpp"
2014-11-24 11:57:01 -05:00
#include <string>
2016-01-05 10:51:13 -05:00
namespace osrm
{
namespace engine
{
namespace plugins
{
2014-10-13 11:29:53 -04:00
class HelloWorldPlugin final : public BasePlugin
2014-05-02 12:06:31 -04:00
{
private:
std::string temp_string;
public:
HelloWorldPlugin() : descriptor_string("hello") {}
virtual ~HelloWorldPlugin() {}
const std::string GetDescriptor() const override final { return descriptor_string; }
2014-05-02 12:06:31 -04:00
2015-12-17 10:45:15 -05:00
Status HandleRequest(const RouteParameters &routeParameters,
2016-01-05 10:51:13 -05:00
util::json::Object &json_result) override final
2014-05-02 12:06:31 -04:00
{
std::string temp_string;
json_result.values["title"] = "Hello World";
temp_string = std::to_string(routeParameters.zoom_level);
json_result.values["zoom_level"] = temp_string;
temp_string = std::to_string(routeParameters.check_sum);
json_result.values["check_sum"] = temp_string;
json_result.values["instructions"] = (routeParameters.print_instructions ? "yes" : "no");
json_result.values["geometry"] = (routeParameters.geometry ? "yes" : "no");
json_result.values["compression"] = (routeParameters.compression ? "yes" : "no");
json_result.values["output_format"] =
(!routeParameters.output_format.empty() ? "yes" : "no");
json_result.values["jsonp_parameter"] =
(!routeParameters.jsonp_parameter.empty() ? "yes" : "no");
json_result.values["language"] = (!routeParameters.language.empty() ? "yes" : "no");
temp_string = std::to_string(routeParameters.coordinates.size());
json_result.values["location_count"] = temp_string;
2016-01-05 10:51:13 -05:00
util::json::Array json_locations;
2014-05-02 12:06:31 -04:00
unsigned counter = 0;
for (const auto coordinate : routeParameters.coordinates)
2014-05-02 12:06:31 -04:00
{
2016-01-05 10:51:13 -05:00
util::json::Object json_location;
util::json::Array json_coordinates;
2015-01-27 11:44:46 -05:00
json_coordinates.values.push_back(
static_cast<double>(coordinate.lat / COORDINATE_PRECISION));
json_coordinates.values.push_back(
static_cast<double>(coordinate.lon / COORDINATE_PRECISION));
json_location.values[std::to_string(counter)] = json_coordinates;
json_locations.values.push_back(json_location);
2014-05-02 12:06:31 -04:00
++counter;
}
json_result.values["locations"] = json_locations;
json_result.values["hint_count"] = routeParameters.hints.size();
2016-01-05 10:51:13 -05:00
util::json::Array json_hints;
counter = 0;
for (const std::string &current_hint : routeParameters.hints)
{
json_hints.values.push_back(current_hint);
++counter;
}
json_result.values["hints"] = json_hints;
2015-12-17 10:45:15 -05:00
return Status::Ok;
2014-05-02 12:06:31 -04:00
}
private:
2013-08-13 12:09:20 -04:00
std::string descriptor_string;
};
2016-01-05 10:51:13 -05:00
}
}
}
2015-01-27 11:44:46 -05:00
#endif // HELLO_WORLD_HPP