提交 81e78bb3 编写于 作者: A Aaron Xiao 提交者: GitHub

Use StrCat to do efficient joining. (#438)

上级 c6db50a0
......@@ -36,4 +36,5 @@ DEFINE_bool(
DEFINE_string(routing_result_file, "modules/map/data/garage_routing.pb.txt",
"File path of the routing result that SimControl will read the "
"start point from. If this is absent, SimControl will directly "
"take the RoutingResponse from ROS to determine the start point.");
"take the RoutingResponse from ROS to determine the start "
"point.");
......@@ -18,6 +18,8 @@
#include <algorithm>
#include "modules/common/util/string_util.h"
namespace apollo {
namespace dreamview {
......@@ -94,14 +96,14 @@ MapElementIds::MapElementIds(const nlohmann::json &json_object)
size_t MapElementIds::Hash() const {
static std::hash<std::string> hash_function;
std::string text;
text = std::accumulate(lane.begin(), lane.end(), text);
text = std::accumulate(crosswalk.begin(), crosswalk.end(), text);
text = std::accumulate(junction.begin(), junction.end(), text);
text = std::accumulate(signal.begin(), signal.end(), text);
text = std::accumulate(stop_sign.begin(), stop_sign.end(), text);
text = std::accumulate(yield.begin(), yield.end(), text);
text = std::accumulate(overlap.begin(), overlap.end(), text);
const std::string text = apollo::common::util::StrCat(
apollo::common::util::PrintIter(lane, ""),
apollo::common::util::PrintIter(crosswalk, ""),
apollo::common::util::PrintIter(junction, ""),
apollo::common::util::PrintIter(signal, ""),
apollo::common::util::PrintIter(stop_sign, ""),
apollo::common::util::PrintIter(yield, ""),
apollo::common::util::PrintIter(overlap, ""));
return hash_function(text);
}
......
......@@ -81,7 +81,8 @@ void SimControl::Start() {
if (initial_start_) {
// Setup planning and routing result data callback.
AdapterManager::AddPlanningCallback(&SimControl::OnPlanning, this);
AdapterManager::AddRoutingResponseCallback(&SimControl::SetStartPoint, this);
AdapterManager::AddRoutingResponseCallback(&SimControl::SetStartPoint,
this);
// Start timer to publish localiztion and chassis messages.
sim_control_timer_ = AdapterManager::CreateTimer(
......
......@@ -51,8 +51,6 @@ namespace dreamview {
*/
class SimulationWorldService {
public:
using Json = nlohmann::json;
// The maximum number of monitor message items to be kept in
// SimulationWorld.
static constexpr int kMaxMonitorItems = 30;
......@@ -79,7 +77,7 @@ class SimulationWorldService {
* @brief Returns the json representation of the SimulationWorld object.
* @return Json object equivalence of the SimulationWorld object.
*/
Json GetUpdateAsJson() const;
nlohmann::json GetUpdateAsJson() const;
/**
* @brief The function Update() is periodically called to check for updates
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册