55 #ifndef OR_TOOLS_ROUTING_CARP_PARSER_H_
56 #define OR_TOOLS_ROUTING_CARP_PARSER_H_
60 #include <string_view>
78 bool LoadFile(
const std::string& file_name);
81 const std::string&
name()
const {
return name_; }
83 const std::string&
comment()
const {
return comment_; }
85 int64_t
depot()
const {
return depot_; }
96 return number_of_edges_with_servicing_;
101 return number_of_edges_without_servicing_;
107 return servicing_demands_;
111 return traversing_costs_;
121 CHECK(traversing_costs_.contains(edge))
122 <<
"Unknown edge: " << edge.
tail() <<
" - " << edge.
head();
123 return traversing_costs_.at(edge);
131 return servicing_demands_.contains(edge);
141 <<
"Unknown edge: " << edge.
tail() <<
" - " << edge.
head();
142 return servicing_demands_.at(edge);
153 ARCS_WITHOUT_SERVICING,
158 bool ParseFile(
const std::string& file_name);
159 bool ParseMetadataLine(
const std::vector<std::string>& words);
160 bool ParseEdge(std::string_view
line,
bool with_servicing);
168 std::string comment_;
169 int64_t number_of_nodes_;
170 int64_t number_of_edges_with_servicing_;
171 int64_t number_of_edges_without_servicing_;
172 int64_t total_servicing_cost_;
int64_t GetServicing(Edge edge) const
int64_t NumberOfEdgesWithoutServicing() const
bool LoadFile(const std::string &file_name)
int64_t HasServicingNeed(int64_t tail, int64_t head) const
const CarpParser & operator=(const CarpParser &)=delete
int64_t GetTraversingCost(Edge edge) const
int64_t NumberOfVehicles() const
int64_t GetServicing(int64_t tail, int64_t head) const
int64_t NumberOfEdgesWithServicing() const
CarpParser(const CarpParser &)=delete
int64_t GetTraversingCost(int64_t tail, int64_t head) const
int64_t TotalServicingCost() const
const gtl::linked_hash_map< Edge, int64_t > & servicing_demands() const
int64_t HasServicingNeed(Edge edge) const
int64_t NumberOfEdges() const
const std::string & name() const
const gtl::linked_hash_map< Edge, int64_t > & traversing_costs() const
const std::string & comment() const
int64_t NumberOfNodes() const
Collection of objects used to extend the Constraint Solver library.