ECSTASY
All in the name
Loading...
Searching...
No Matches
util::serialization::PolymorphicIterator< T >::Model< Iter > Class Template Reference
Inheritance diagram for util::serialization::PolymorphicIterator< T >::Model< Iter >:
Collaboration diagram for util::serialization::PolymorphicIterator< T >::Model< Iter >:

Public Member Functions

 Model (Iter iter)
 Construct a new Model.
 
void nextInplace () override final
 Increment the iterator by one.
 
value_type get () const override final
 Retrieve the iterator value.
 
bool equal (const Concept *other) const override final
 Compare two operators.
 
std::unique_ptr< Conceptclone () const override final
 Clone this.
 
const std::type_infotype () const noexcept override final
 Get the current iterator type info.
 
const Conceptaddress () const noexcept override final
 Get this address.
 
- Public Member Functions inherited from util::serialization::PolymorphicIterator< T >::Concept
virtual ~Concept () noexcept=default
 Default destructor.
 
virtual void nextInplace ()=0
 Increment the iterator by one.
 
virtual value_type get () const =0
 Retrieve the iterator value.
 
virtual bool equal (const Concept *other) const =0
 Compare two operators.
 
virtual std::unique_ptr< Conceptclone () const =0
 Clone this.
 
virtual const std::type_infotype () const noexcept=0
 Get the current iterator type info.
 
virtual const Conceptaddress () const noexcept=0
 Get this address.
 

Private Attributes

Iter _iter
 

Detailed Description

template<typename T>
template<class Iter>
class util::serialization::PolymorphicIterator< T >::Model< Iter >

Definition at line 119 of file PolymorphicIterator.hpp.

Constructor & Destructor Documentation

◆ Model()

template<typename T >
template<class Iter >
util::serialization::PolymorphicIterator< T >::Model< Iter >::Model ( Iter  iter)
inline

Construct a new Model.

Parameters
[in]iteriterator to wrap.
Author
Andréas Leroux (andre.nosp@m.as.l.nosp@m.eroux.nosp@m.@epi.nosp@m.tech..nosp@m.eu)
Since
1.0.0 (2022-12-13)

Definition at line 129 of file PolymorphicIterator.hpp.

Member Function Documentation

◆ address()

template<typename T >
template<class Iter >
const Concept * util::serialization::PolymorphicIterator< T >::Model< Iter >::address ( ) const
inlinefinaloverridevirtualnoexcept

Get this address.

Returns
const Concept* this address.
Author
Andréas Leroux (andre.nosp@m.as.l.nosp@m.eroux.nosp@m.@epi.nosp@m.tech..nosp@m.eu)
Since
1.0.0 (2022-12-13)

Implements util::serialization::PolymorphicIterator< T >::Concept.

Definition at line 164 of file PolymorphicIterator.hpp.

165 {
166 return this;
167 }

◆ clone()

template<typename T >
template<class Iter >
std::unique_ptr< Concept > util::serialization::PolymorphicIterator< T >::Model< Iter >::clone ( ) const
inlinefinaloverridevirtual

Clone this.

Returns
std::unique_ptr<Concept> Copy of this.
Author
Andréas Leroux (andre.nosp@m.as.l.nosp@m.eroux.nosp@m.@epi.nosp@m.tech..nosp@m.eu)
Since
1.0.0 (2022-12-13)

Implements util::serialization::PolymorphicIterator< T >::Concept.

Definition at line 152 of file PolymorphicIterator.hpp.

153 {
154 return std::make_unique<Model>(*this);
155 }

◆ equal()

template<typename T >
template<class Iter >
bool util::serialization::PolymorphicIterator< T >::Model< Iter >::equal ( const Concept other) const
inlinefinaloverridevirtual

Compare two operators.

Warning
The iterators must be issued from the same container.
Parameters
[in]otherOther iterator.
Returns
bool Whether the two iterators are equals.
Author
Andréas Leroux (andre.nosp@m.as.l.nosp@m.eroux.nosp@m.@epi.nosp@m.tech..nosp@m.eu)
Since
1.0.0 (2022-12-13)

Implements util::serialization::PolymorphicIterator< T >::Concept.

Definition at line 146 of file PolymorphicIterator.hpp.

147 {
148 return _iter == dynamic_cast<const Model *>(other)->_iter;
149 }

◆ get()

template<typename T >
template<class Iter >
value_type util::serialization::PolymorphicIterator< T >::Model< Iter >::get ( ) const
inlinefinaloverridevirtual

Retrieve the iterator value.

Returns
const value_type value associated with the iterator.
Author
Andréas Leroux (andre.nosp@m.as.l.nosp@m.eroux.nosp@m.@epi.nosp@m.tech..nosp@m.eu)
Since
1.0.0 (2022-12-13)

Implements util::serialization::PolymorphicIterator< T >::Concept.

Definition at line 140 of file PolymorphicIterator.hpp.

141 {
142 return *_iter;
143 }

◆ nextInplace()

template<typename T >
template<class Iter >
void util::serialization::PolymorphicIterator< T >::Model< Iter >::nextInplace ( )
inlinefinaloverridevirtual

Increment the iterator by one.

Author
Andréas Leroux (andre.nosp@m.as.l.nosp@m.eroux.nosp@m.@epi.nosp@m.tech..nosp@m.eu)
Since
1.0.0 (2022-12-13)

Implements util::serialization::PolymorphicIterator< T >::Concept.

Definition at line 134 of file PolymorphicIterator.hpp.

135 {
136 ++_iter;
137 }

◆ type()

template<typename T >
template<class Iter >
const std::type_info & util::serialization::PolymorphicIterator< T >::Model< Iter >::type ( ) const
inlinefinaloverridevirtualnoexcept

Get the current iterator type info.

Returns
const std::type_info& this type info.
Author
Andréas Leroux (andre.nosp@m.as.l.nosp@m.eroux.nosp@m.@epi.nosp@m.tech..nosp@m.eu)
Since
1.0.0 (2022-12-13)

Implements util::serialization::PolymorphicIterator< T >::Concept.

Definition at line 158 of file PolymorphicIterator.hpp.

159 {
160 return typeid(_iter);
161 }

Member Data Documentation

◆ _iter

template<typename T >
template<class Iter >
Iter util::serialization::PolymorphicIterator< T >::Model< Iter >::_iter
private

Definition at line 171 of file PolymorphicIterator.hpp.


The documentation for this class was generated from the following file: