1#ifndef AAS_CORE_AAS_3_1_ITERATION_GUARD_
2#define AAS_CORE_AAS_3_1_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_;
Provide a non-recursive iterable over the instances referenced from an instance.
Definition iteration.hpp:395
~DescentOnce() override=default
Iterator begin() const override
DescentOnce(std::shared_ptr< types::IClass > instance)
const Iterator & end() const override
Provide a recursive iterable over all the instances referenced from an instance.
Definition iteration.hpp:361
~Descent() override=default
Iterator begin() const override
Descent(std::shared_ptr< types::IClass > instance)
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 ~ISegment()=default
virtual std::wstring ToWstring() const =0
Iterate over an AAS instance.
Definition iteration.hpp:271
friend bool operator!=(const Iterator &a, const Iterator &b)
Iterator & operator=(const Iterator &other)
Iterator & operator=(Iterator &&other)
friend Path MaterializePath(const Iterator &iterator)
Materialize the path that the iterator points to.
Iterator(const Iterator &other)
reference operator*() const
Iterator(Iterator &&other)
friend void PrependToPath(const Iterator &iterator, Path *path)
friend bool operator==(const Iterator &a, const Iterator &b)
const std::vector< types::QualifierKind > kOverQualifierKind
Give a container for all the literals of types::QualifierKind.
const std::vector< types::AasSubmodelElements > kOverAasSubmodelElements
Give a container for all the literals of types::AasSubmodelElements.
Path MaterializePath(const Iterator &iterator)
Materialize the path that the iterator points to.
const std::vector< types::KeyTypes > kOverKeyTypes
Give a container for all the literals of types::KeyTypes.
const std::vector< types::DataTypeDefXsd > kOverDataTypeDefXsd
Give a container for all the literals of types::DataTypeDefXsd.
std::wstring PropertyToWstring(Property property)
const std::vector< types::DataTypeIec61360 > kOverDataTypeIec61360
Give a container for all the literals of types::DataTypeIec61360.
const std::vector< types::ModellingKind > kOverModellingKind
Give a container for all the literals of types::ModellingKind.
Property
Definition iteration.hpp:30
@ kSupplementalSemanticIds
@ kAssetAdministrationShells
@ kEmbeddedDataSpecifications
@ kDataSpecificationContent
bool operator!=(const Iterator &a, const Iterator &b)
const std::vector< types::EntityType > kOverEntityType
Give a container for all the literals of types::EntityType.
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::ReferenceTypes > kOverReferenceTypes
Give a container for all the literals of types::ReferenceTypes.
const std::vector< types::StateOfEvent > kOverStateOfEvent
Give a container for all the literals of types::StateOfEvent.
const std::vector< types::Direction > kOverDirection
Give a container for all the literals of types::Direction.
Definition iteration.hpp:156
std::wstring ToWstring() const override
std::unique_ptr< ISegment > Clone() const override
size_t index
Definition iteration.hpp:160
~IndexSegment() override=default
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=(Path &&other)
Path & operator=(const Path &other)
Definition iteration.hpp:137
std::wstring ToWstring() const override
Property property
Definition iteration.hpp:141
std::unique_ptr< ISegment > Clone() const override
PropertySegment(Property a_property)
~PropertySegment() override=default