1#ifndef AAS_CORE_AAS_3_0_ITERATION_GUARD_
2#define AAS_CORE_AAS_3_0_ITERATION_GUARD_
9#pragma warning(push, 0)
130 virtual std::unique_ptr<ISegment>
Clone()
const = 0;
148 std::unique_ptr<ISegment>
Clone()
const override;
167 std::unique_ptr<ISegment>
Clone()
const override;
206 virtual void Start() = 0;
207 virtual void Next() = 0;
208 virtual bool Done()
const = 0;
209 virtual const std::shared_ptr<types::IClass>& Get()
const = 0;
210 virtual long Index()
const = 0;
213 virtual void PrependToPath(
Path* path)
const = 0;
215 virtual std::unique_ptr<IIterator> Clone()
const = 0;
217 virtual ~IIterator() =
default;
272 using iterator_category = std::forward_iterator_tag;
274 using difference_type = std::ptrdiff_t;
275 using value_type = std::shared_ptr<types::IClass>;
276 using pointer =
const std::shared_ptr<types::IClass>*;
277 using reference =
const std::shared_ptr<types::IClass>&;
305 std::unique_ptr<impl::IIterator> implementation
307 implementation_(std::move(implementation)) {
311 std::unique_ptr<impl::IIterator> implementation_;
364 std::shared_ptr<types::IClass> instance
373 std::shared_ptr<types::IClass> instance_;
398 std::shared_ptr<types::IClass> instance
407 std::shared_ptr<types::IClass> instance_;
DescentOnce(std::shared_ptr< types::IClass > instance)
Iterator begin() const override
const Iterator & end() const override
~DescentOnce() override=default
Descent(std::shared_ptr< types::IClass > instance)
~Descent() override=default
Iterator begin() const override
const Iterator & end() const override
Definition iteration.hpp:332
virtual Iterator begin() const =0
virtual ~IDescent()=default
virtual const Iterator & end() const =0
Definition iteration.hpp:127
virtual std::unique_ptr< ISegment > Clone() const =0
virtual std::wstring ToWstring() const =0
virtual ~ISegment()=default
Iterate over an AAS instance.
Definition iteration.hpp:271
friend bool operator!=(const Iterator &a, const Iterator &b)
Iterator(Iterator &&other)
friend Path MaterializePath(const Iterator &iterator)
Materialize the path that the iterator points to.
friend class DescentOnce
Definition iteration.hpp:299
reference operator*() const
Iterator & operator=(Iterator &&other)
friend void PrependToPath(const Iterator &iterator, Path *path)
friend bool operator==(const Iterator &a, const Iterator &b)
Iterator & operator=(const Iterator &other)
Iterator(const Iterator &other)
friend class Descent
Definition iteration.hpp:298
Definition iteration.hpp:23
const std::vector< types::ReferenceTypes > kOverReferenceTypes
Give a container for all the literals of types::ReferenceTypes.
const std::vector< types::AasSubmodelElements > kOverAasSubmodelElements
Give a container for all the literals of types::AasSubmodelElements.
const std::vector< types::ModellingKind > kOverModellingKind
Give a container for all the literals of types::ModellingKind.
const std::vector< types::StateOfEvent > kOverStateOfEvent
Give a container for all the literals of types::StateOfEvent.
Property
Definition iteration.hpp:30
@ kValueId
Definition iteration.hpp:112
@ kAnnotations
Definition iteration.hpp:32
@ kShortName
Definition iteration.hpp:89
@ kSymbol
Definition iteration.hpp:100
@ kPreferredName
Definition iteration.hpp:81
@ kValueList
Definition iteration.hpp:113
@ kOrderRelevant
Definition iteration.hpp:77
@ kDefinition
Definition iteration.hpp:45
@ kAssetInformation
Definition iteration.hpp:34
@ kVersion
Definition iteration.hpp:117
@ kSupplementalSemanticIds
Definition iteration.hpp:99
@ kDefaultThumbnail
Definition iteration.hpp:44
@ kSpecificAssetIds
Definition iteration.hpp:93
@ kTemplateId
Definition iteration.hpp:101
@ kLevelType
Definition iteration.hpp:65
@ kLanguage
Definition iteration.hpp:63
@ kPath
Definition iteration.hpp:79
@ kLastUpdate
Definition iteration.hpp:64
@ kValueReferencePairs
Definition iteration.hpp:114
@ kDerivedFrom
Definition iteration.hpp:46
@ kTypeValueListElement
Definition iteration.hpp:107
@ kSourceSemanticId
Definition iteration.hpp:92
@ kTyp
Definition iteration.hpp:105
@ kSecond
Definition iteration.hpp:86
@ kText
Definition iteration.hpp:102
@ kObservableReference
Definition iteration.hpp:74
@ kUnit
Definition iteration.hpp:108
@ kIdShort
Definition iteration.hpp:57
@ kKeys
Definition iteration.hpp:61
@ kUnitId
Definition iteration.hpp:109
@ kMinInterval
Definition iteration.hpp:71
@ kMaxInterval
Definition iteration.hpp:67
@ kExtensions
Definition iteration.hpp:52
@ kAdministration
Definition iteration.hpp:31
@ kCategory
Definition iteration.hpp:37
@ kRevision
Definition iteration.hpp:85
@ kDescription
Definition iteration.hpp:47
@ kNom
Definition iteration.hpp:73
@ kMessageBroker
Definition iteration.hpp:68
@ kDirection
Definition iteration.hpp:48
@ kValueType
Definition iteration.hpp:115
@ kValueFormat
Definition iteration.hpp:111
@ kDataSpecification
Definition iteration.hpp:41
@ kRefersTo
Definition iteration.hpp:84
@ kOutputVariables
Definition iteration.hpp:78
@ kValue
Definition iteration.hpp:110
@ kDisplayName
Definition iteration.hpp:49
@ kId
Definition iteration.hpp:56
@ kObserved
Definition iteration.hpp:76
@ kTimeStamp
Definition iteration.hpp:103
@ kMin
Definition iteration.hpp:70
@ kMessageTopic
Definition iteration.hpp:69
@ kReferredSemanticId
Definition iteration.hpp:83
@ kContentType
Definition iteration.hpp:39
@ kStatements
Definition iteration.hpp:95
@ kKind
Definition iteration.hpp:62
@ kIsCaseOf
Definition iteration.hpp:60
@ kFirst
Definition iteration.hpp:54
@ kMax
Definition iteration.hpp:66
@ kSubmodelElements
Definition iteration.hpp:97
@ kAssetAdministrationShells
Definition iteration.hpp:33
@ kObservableSemanticId
Definition iteration.hpp:75
@ kState
Definition iteration.hpp:94
@ kQualifiers
Definition iteration.hpp:82
@ kConceptDescriptions
Definition iteration.hpp:38
@ kSubmodels
Definition iteration.hpp:98
@ kSource
Definition iteration.hpp:90
@ kSubjectId
Definition iteration.hpp:96
@ kExternalSubjectId
Definition iteration.hpp:53
@ kDataType
Definition iteration.hpp:43
@ kSourceOfDefinition
Definition iteration.hpp:91
@ kAssetKind
Definition iteration.hpp:35
@ kType
Definition iteration.hpp:106
@ kTopic
Definition iteration.hpp:104
@ kPayload
Definition iteration.hpp:80
@ kGlobalAssetId
Definition iteration.hpp:55
@ kCreator
Definition iteration.hpp:40
@ kEmbeddedDataSpecifications
Definition iteration.hpp:50
@ kName
Definition iteration.hpp:72
@ kInoutputVariables
Definition iteration.hpp:58
@ kEntityType
Definition iteration.hpp:51
@ kSemanticId
Definition iteration.hpp:87
@ kDataSpecificationContent
Definition iteration.hpp:42
@ kAssetType
Definition iteration.hpp:36
@ kInputVariables
Definition iteration.hpp:59
@ kSemanticIdListElement
Definition iteration.hpp:88
@ kValueTypeListElement
Definition iteration.hpp:116
const std::vector< types::DataTypeIec61360 > kOverDataTypeIec61360
Give a container for all the literals of types::DataTypeIec61360.
const std::vector< types::AssetKind > kOverAssetKind
Give a container for all the literals of types::AssetKind.
bool operator!=(const Iterator &a, const Iterator &b)
const std::vector< types::Direction > kOverDirection
Give a container for all the literals of types::Direction.
bool operator==(const Iterator &a, const Iterator &b)
const std::vector< types::DataTypeDefXsd > kOverDataTypeDefXsd
Give a container for all the literals of types::DataTypeDefXsd.
const std::vector< types::KeyTypes > kOverKeyTypes
Give a container for all the literals of types::KeyTypes.
std::wstring PropertyToWstring(Property property)
const std::vector< types::EntityType > kOverEntityType
Give a container for all the literals of types::EntityType.
Path MaterializePath(const Iterator &iterator)
Materialize the path that the iterator points to.
const std::vector< types::QualifierKind > kOverQualifierKind
Give a container for all the literals of types::QualifierKind.
std::unique_ptr< ISegment > Clone() const override
size_t index
Definition iteration.hpp:160
~IndexSegment() override=default
std::wstring ToWstring() const override
IndexSegment(size_t an_index)
Represent a path to some value.
Definition iteration.hpp:181
std::deque< std::unique_ptr< ISegment > > segments
Definition iteration.hpp:187
std::wstring ToWstring() const
Path & operator=(const Path &other)
Path & operator=(Path &&other)
~PropertySegment() override=default
Property property
Definition iteration.hpp:141
std::unique_ptr< ISegment > Clone() const override
PropertySegment(Property a_property)
std::wstring ToWstring() const override