libqi-api  2.8.7.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
qi::IteratorTypeInterface Class Referenceabstract

#include <typeinterface.hpp>

Public Member Functions

virtual AnyReference dereference (void *storage)=0
 
virtual void next (void **storage)=0
 Increment the iterator. More...
 
virtual bool equals (void *s1, void *s2)=0
 Check for iterator equality. More...
 
TypeKind kind () override
 
- Public Member Functions inherited from qi::TypeInterface
virtual ~TypeInterface ()=default
 
virtual const TypeInfoinfo ()=0
 Get the TypeInfo corresponding to this type. More...
 
virtual void * initializeStorage (void *ptr=nullptr)=0
 
virtual void * ptrFromStorage (void **)=0
 
virtual void * clone (void *)=0
 Allocate a storage and copy the value given as an argument. More...
 
virtual void destroy (void *)=0
 Free all resources of a storage. More...
 
virtual bool less (void *a, void *b)=0
 
const char * infoString ()
 
qi::Signature signature (void *storage=nullptr, bool resolveDynamic=false)
 

Additional Inherited Members

- Static Public Member Functions inherited from qi::TypeInterface
static TypeInterfacefromSignature (const qi::Signature &sig)
 

Detailed Description

Interface for an iterator (on a list or a map)

Iterators become invalid if the parent container is destroyed and no method should be called in such a case.

Definition at line 164 of file typeinterface.hpp.

Member Function Documentation

virtual AnyReference qi::IteratorTypeInterface::dereference ( void *  storage)
pure virtual

Get the value pointed by the iterator

Returned reference is expected to point to somewhere in the iterator, or the container. It remains valid as long as the iterator is neither modified by next() nor destroyed, and the parent container is not destroyed.

Implemented in qi::TypeSimpleIteratorImpl< T >.

virtual bool qi::IteratorTypeInterface::equals ( void *  s1,
void *  s2 
)
pure virtual

Check for iterator equality.

Implemented in qi::TypeSimpleIteratorImpl< T >.

TypeKind qi::IteratorTypeInterface::kind ( )
inlineoverridevirtual

Get the kind of the data.

This is used to downcast the TypeInterface object to a specialized interface.

Reimplemented from qi::TypeInterface.

Definition at line 180 of file typeinterface.hpp.

virtual void qi::IteratorTypeInterface::next ( void **  storage)
pure virtual

Increment the iterator.

Implemented in qi::TypeSimpleIteratorImpl< T >.


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