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 declaration
28// ===========================================================================
29
30class FileBucket;
31
32// ===========================================================================
33// class definitions
34// ===========================================================================
35
37
38public:
42 CommonHandler(FileBucket* fileBucket);
43
45 virtual ~CommonHandler();
46
49
52
54 void abortLoading();
55
57 bool isErrorCreatingElement() const;
58
60 bool isForceOverwriteElements() const;
61
63 bool isForceRemainElements() const;
64
66 bool isAbortLoading() const;
67
68protected:
71
74
77
79 bool myOverwriteElements = false;
80
82 bool myRemainElements = false;
83
85 bool myAbortLoading = false;
86
88 void parseParameters(const SUMOSAXAttributes& attrs);
89
92
95
97 void checkParsedParent(const SumoXMLTag currentTag, const std::vector<SumoXMLTag>& parentTags, bool& ok);
98
100 bool checkListOfVehicleTypes(const SumoXMLTag tag, const std::string& id, const std::vector<std::string>& vTypeIDs);
101
104
107
110
113
116
118 bool checkNegative(const SumoXMLTag tag, const std::string& id, const SumoXMLAttr attribute, const int value, const bool canBeZero);
119
121 bool checkNegative(const SumoXMLTag tag, const std::string& id, const SumoXMLAttr attribute, const double value, const bool canBeZero);
122
124 bool checkNegative(const SumoXMLTag tag, const std::string& id, const SumoXMLAttr attribute, const SUMOTime value, const bool canBeZero);
125
127 bool checkFileName(const SumoXMLTag tag, const std::string& id, const SumoXMLAttr attribute, const std::string& value);
128
130 bool checkValidAdditionalID(const SumoXMLTag tag, const std::string& value);
131
133 bool checkValidDetectorID(const SumoXMLTag tag, const std::string& value);
134
136 bool checkValidDemandElementID(const SumoXMLTag tag, const std::string& value);
137
139
141 void writeWarningOverwriting(const SumoXMLTag tag, const std::string& id);
142
144 bool writeWarningDuplicated(const SumoXMLTag tag, const std::string& id, const SumoXMLTag checkedTag);
145
147 bool writeError(const std::string& error);
148
150 bool writeErrorInvalidPosition(const SumoXMLTag tag, const std::string& id);
151
153 bool writeErrorInvalidLanes(const SumoXMLTag tag, const std::string& id);
154
156 bool writeErrorInvalidParent(const SumoXMLTag tag, const std::string& id, const std::vector<SumoXMLTag> parentTags, const std::string& parentID);
157
159 bool writeErrorInvalidParent(const SumoXMLTag tag, const std::vector<SumoXMLTag> parentTags, const std::string& parentID);
160
162 bool writeErrorInvalidParent(const SumoXMLTag tag, const std::vector<SumoXMLTag> parentTags);
163
164private:
166 std::string parseParentTags(std::vector<SumoXMLTag> parentTags) const;
167
169 CommonHandler() = delete;
170
172 CommonHandler(const CommonHandler& s) = delete;
173
176};
long long int SUMOTime
Definition GUI.h:36
SumoXMLTag
Numbers representing SUMO-XML - element names.
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
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 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 writeErrorInvalidParent(const SumoXMLTag tag, const std::string &id, const std::vector< SumoXMLTag > parentTags, const std::string &parentID)
write error "invalid parent element" giving ids of current and parent element
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"
FileBucket * myFileBucket
fileBucket
std::string parseParentTags(std::vector< SumoXMLTag > parentTags) const
parse list of parent tags
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
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.