Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
CommonHandler.h
Go to the documentation of this file.
1/****************************************************************************/
2// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.
4// This program and the accompanying materials are made available under the
5// terms of the Eclipse Public License 2.0 which is available at
6// https://www.eclipse.org/legal/epl-2.0/
7// This Source Code may also be made available under the following Secondary
8// Licenses when the conditions for such availability set forth in the Eclipse
9// Public License 2.0 are satisfied: GNU General Public License, version 2
10// or later which is available at
11// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13/****************************************************************************/
18// Collection of functions used in handlers
19/****************************************************************************/
20#pragma once
21#include <config.h>
22
25
26// ===========================================================================
27// class definitions
28// ===========================================================================
38
39public:
43 CommonHandler(const std::string& filename);
44
46 virtual ~CommonHandler();
47
50
53
55 void abortLoading();
56
58 bool isErrorCreatingElement() const;
59
61 bool isForceOverwriteElements() const;
62
64 bool isForceRemainElements() const;
65
67 bool isAbortLoading() const;
68
69protected:
71 const std::string myFilename;
72
75
78
80 bool myOverwriteElements = false;
81
83 bool myRemainElements = false;
84
86 bool myAbortLoading = false;
87
89 void parseParameters(const SUMOSAXAttributes& attrs);
90
93
96
98 void checkParsedParent(const SumoXMLTag currentTag, const std::vector<SumoXMLTag>& parentTags, bool& ok);
99
101 bool checkListOfVehicleTypes(const SumoXMLTag tag, const std::string& id, const std::vector<std::string>& vTypeIDs);
102
105
108
111
114
117
119 bool checkNegative(const SumoXMLTag tag, const std::string& id, const SumoXMLAttr attribute, const int value, const bool canBeZero);
120
122 bool checkNegative(const SumoXMLTag tag, const std::string& id, const SumoXMLAttr attribute, const double value, const bool canBeZero);
123
125 bool checkNegative(const SumoXMLTag tag, const std::string& id, const SumoXMLAttr attribute, const SUMOTime value, const bool canBeZero);
126
128 bool checkFileName(const SumoXMLTag tag, const std::string& id, const SumoXMLAttr attribute, const std::string& value);
129
131 bool checkValidAdditionalID(const SumoXMLTag tag, const std::string& value);
132
134 bool checkValidDetectorID(const SumoXMLTag tag, const std::string& value);
135
137 bool checkValidDemandElementID(const SumoXMLTag tag, const std::string& value);
138
140
142 void writeWarningOverwriting(const SumoXMLTag tag, const std::string& id);
143
145 bool writeWarningDuplicated(const SumoXMLTag tag, const std::string& id, const SumoXMLTag checkedTag);
146
148 bool writeError(const std::string& error);
149
151 bool writeErrorInvalidPosition(const SumoXMLTag tag, const std::string& id);
152
154 bool writeErrorEmptyEdges(const SumoXMLTag tag, const std::string& id);
155
157 bool writeErrorInvalidLanes(const SumoXMLTag tag, const std::string& id);
158
160 bool writeErrorInvalidParent(const SumoXMLTag tag, const std::string& id, const SumoXMLTag parentTag, const std::string& parentID);
161
163 bool writeErrorInvalidParent(const SumoXMLTag tag, const SumoXMLTag parentTag, const std::string& parentID);
164
166 bool writeErrorInvalidParent(const SumoXMLTag tag, const SumoXMLTag parentTag);
167
168private:
170 CommonHandler() = delete;
171
173 CommonHandler(const CommonHandler& s) = delete;
174
177};
long long int SUMOTime
Definition GUI.h:36
SumoXMLTag
Numbers representing SUMO-XML - element names.
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
The XML-Handler for network loading.
bool checkStopParents(CommonXMLStructure::SumoBaseObject *obj)
check stop parents
CommonXMLStructure::SumoBaseObject * getEmbeddedRoute(const CommonXMLStructure::SumoBaseObject *sumoBaseObject) const
get embedded route from children
virtual ~CommonHandler()
Destructor.
void checkParsedParent(const SumoXMLTag currentTag, const std::vector< SumoXMLTag > &parentTags, bool &ok)
check parsed parents
void forceRemainElements()
force remain elements (used if we're reloading elements)
bool checkContainerPlanParents(CommonXMLStructure::SumoBaseObject *obj)
check container plan parents
bool writeError(const std::string &error)
write error and enable error creating element
bool myErrorCreatingElement
flag for mark if a element wasn't created
CommonHandler()=delete
invalidate default onstructor
void writeWarningOverwriting(const SumoXMLTag tag, const std::string &id)
write warning overwritting element
bool isForceRemainElements() const
force remain elements (used if we're reloading elements)
CommonHandler & operator=(const CommonHandler &s)=delete
invalidate assignment operator
bool checkValidDetectorID(const SumoXMLTag tag, const std::string &value)
check if the given detector ID is valid
bool writeErrorInvalidParent(const SumoXMLTag tag, const std::string &id, const SumoXMLTag parentTag, const std::string &parentID)
write error "invalid parent element" giving ids of current and parent element
bool myAbortLoading
abort loading
bool checkListOfVehicleTypes(const SumoXMLTag tag, const std::string &id, const std::vector< std::string > &vTypeIDs)
check list of IDs
void parseParameters(const SUMOSAXAttributes &attrs)
parse generic parameters
bool writeWarningDuplicated(const SumoXMLTag tag, const std::string &id, const SumoXMLTag checkedTag)
write warning duplicated element
bool isForceOverwriteElements() const
force overwritte elements (used if we're reloading elements)
bool writeErrorEmptyEdges(const SumoXMLTag tag, const std::string &id)
write error "empty edges"
bool checkWithinDistribution(CommonXMLStructure::SumoBaseObject *obj)
check if the given object is within a distribution (VType or routes)
bool myOverwriteElements
overwrite elements
bool checkValidAdditionalID(const SumoXMLTag tag, const std::string &value)
check if the given additional ID is valid
bool checkFileName(const SumoXMLTag tag, const std::string &id, const SumoXMLAttr attribute, const std::string &value)
check if the given filename is valid
void abortLoading()
abort loading
bool writeErrorInvalidPosition(const SumoXMLTag tag, const std::string &id)
write error "invalid position"
bool isAbortLoading() const
abort loading
CommonXMLStructure myCommonXMLStructure
common XML Structure
bool writeErrorInvalidLanes(const SumoXMLTag tag, const std::string &id)
write error "invalid list of lanes"
bool checkVehicleParents(CommonXMLStructure::SumoBaseObject *obj)
check vehicle parents
const std::string myFilename
filename
bool checkNegative(const SumoXMLTag tag, const std::string &id, const SumoXMLAttr attribute, const int value, const bool canBeZero)
check if the given int value is NOT negative
bool checkValidDemandElementID(const SumoXMLTag tag, const std::string &value)
check if the given demand elmement ID is valid
CommonHandler(const CommonHandler &s)=delete
invalidate copy constructor
bool myRemainElements
remain elements
bool isErrorCreatingElement() const
get flag for mark if a element wasn't created
void forceOverwriteElements()
force overwritte elements (used if we're reloading elements)
bool checkPersonPlanParents(CommonXMLStructure::SumoBaseObject *obj)
check person plan parents
Encapsulated SAX-Attributes.