scenario_simulator_v2 C++ API
property.hpp
Go to the documentation of this file.
1 // Copyright 2015 TIER IV, Inc. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef OPENSCENARIO_INTERPRETER__SYNTAX__PROPERTY_HPP_
16 #define OPENSCENARIO_INTERPRETER__SYNTAX__PROPERTY_HPP_
17 
20 #include <pugixml.hpp>
21 
23 {
24 inline namespace syntax
25 {
26 /* ---- Property ---------------------------------------------------------------
27  *
28  * <xsd:complexType name="Property">
29  * <xsd:attribute name="name" type="String" use="required"/>
30  * <xsd:attribute name="value" type="String" use="required"/>
31  * </xsd:complexType>
32  *
33  * -------------------------------------------------------------------------- */
34 struct Property
35 {
36  const String name;
37 
38  const String value;
39 
40  /*
41  The default construct is used to give the value of an unspecified
42  property.
43 
44  Generally, this default constructor is called when an unspecified property
45  name is specified in operator [] of std::unordered_map that holds the
46  Property class.
47 
48  The default constructed property has an empty "value".
49  The implicit cast operator of the Property class constructs the target
50  type by default constructor if the string "value" is empty.
51 
52  Keep in mind that the C++ bool type has a value 'false' when it is
53  initialized by default construction.
54  */
55  Property() = default;
56 
57  explicit Property(const pugi::xml_node &, Scope &);
58 
59  explicit operator bool() const;
60 };
61 } // namespace syntax
62 } // namespace openscenario_interpreter
63 
64 #endif // OPENSCENARIO_INTERPRETER__SYNTAX__PROPERTY_HPP_
Definition: scope.hpp:154
std::string String
Definition: string.hpp:24
Definition: escape_sequence.hpp:22
Definition: property.hpp:35
const String name
Definition: property.hpp:36
const String value
Definition: property.hpp:38