23 #include <navgraph/constraints/timed_reservation_list_node_constraint.h>
60 std::vector<std::pair<fawkes::NavGraphNode, fawkes::Time>> node_time_list)
65 constraint_name_ =
name;
78 std::vector<std::pair<NavGraphNode, fawkes::Time>> erase_list;
79 for (
const std::pair<NavGraphNode, fawkes::Time> &ec : node_time_list_) {
80 if (now > ec.second) {
81 erase_list.push_back(ec);
84 for (
const std::pair<NavGraphNode, fawkes::Time> &ec : erase_list) {
85 node_time_list_.erase(std::remove(node_time_list_.begin(), node_time_list_.end(), ec),
86 node_time_list_.end());
88 logger_->log_debug(
"TimedNodeConstraint",
89 "Deleted node '%s' from '%s' because its validity duration ran out",
90 ec.first.name().c_str(),
112 if (valid_time < now) {
113 logger_->
log_warn(
"TimedNodeConstraint",
114 "Constraint '%s' received node with old reservation time='%f' - now='%f'",
121 node_time_list_.push_back(std::make_pair(node, valid_time));
122 std::string txt = node.
name();
131 const std::vector<std::pair<fawkes::NavGraphNode, fawkes::Time>> &timed_nodes)
133 std::string txt =
"{";
134 for (
const std::pair<NavGraphNode, fawkes::Time> &ec : timed_nodes) {
136 txt += ec.first.name();
139 txt.erase(txt.length() - 1, 1);
149 std::vector<std::pair<NavGraphNode, fawkes::Time>>::iterator ec =
150 std::find_if(node_time_list_.begin(),
151 node_time_list_.end(),
152 [&node](
const std::pair<fawkes::NavGraphNode, fawkes::Time> &p) {
153 return p.first == node;
156 if (ec != node_time_list_.end()) {
158 node_time_list_.erase(ec);
169 return (std::find_if(node_time_list_.begin(),
170 node_time_list_.end(),
171 [&node](
const std::pair<fawkes::NavGraphNode, fawkes::Time> &p) {
172 return p.first == node;
174 != node_time_list_.end());
180 for (
const std::pair<fawkes::NavGraphNode, fawkes::Time> &te : node_time_list_) {
181 if (te.first.name() == node.name()) {
191 const std::vector<std::pair<fawkes::NavGraphNode, fawkes::Time>> &
194 return node_time_list_;
201 if (!node_time_list_.empty()) {
203 node_time_list_.clear();