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

#include <anyiterator.hpp>

Public Types

using value_type = AnyReference
 
using pointer = AnyReference *
 
using reference = AnyReference &
 
using difference_type = ptrdiff_t
 
using iterator_category = std::forward_iterator_tag
 

Public Member Functions

 AnyIterator ()
 
 AnyIterator (const AnyReference &p)
 
 AnyIterator (const AnyValue &v)
 
template<typename T >
 AnyIterator (const T &ref)
 
AnyIteratoroperator++ ()
 Iterator pre-increment. More...
 
AnyIterator operator++ (int)
 Iterator post-increment. More...
 
AnyReference operator* ()
 Dereference. More...
 
- Public Member Functions inherited from qi::AnyValue
 AnyValue ()
 
 AnyValue (const AnyValue &b)
 
 AnyValue (const AnyReference &b, bool copy, bool free)
 
 AnyValue (const AutoAnyReference &b)
 
 AnyValue (qi::TypeInterface *type)
 
AnyReference release ()
 
 ~AnyValue ()
 
AnyValueoperator= (const AnyReference &b)
 
AnyValueoperator= (const AnyValue &b)
 
void reset ()
 
void reset (qi::TypeInterface *type)
 
template<typename T >
void set (const T &t)
 
void reset (const AnyReference &src)
 
void reset (const AnyReference &src, bool copy, bool free)
 
void swap (AnyValue &b)
 
AnyReference asReference () const
 
- Public Member Functions inherited from qi::detail::AnyReferenceBase
qi::Signature signature (bool resolveDynamic=false) const
 
TypeKind kind () const
 
AnyReference unwrap () const
 
void update (const AutoAnyReference &b)
 
template<typename T >
void set (const T &val)
 Update the value to val, which will be converted if required. More...
 
void set (int64_t v)
 
void set (int32_t v)
 
void set (uint64_t v)
 
void set (uint32_t v)
 
void set (float v)
 
void set (double v)
 
void set (const std::string &v)
 
void setInt (int64_t v)
 
void setUInt (uint64_t v)
 
void setFloat (float v)
 
void setDouble (double v)
 
void setString (const std::string &v)
 
void setDynamic (const AnyReference &value)
 
void setOptional (const boost::optional< AnyReference > &opt)
 
void setOptional (const AnyReference &opt)
 
void setRaw (const char *buffer, size_t size)
 
void setTuple (const AnyReferenceVector &values)
 
void resetOptional ()
 
TypeInterfacetype () const
 
std::vector< TypeInterface * > membersType () const
 
void * rawValue () const
 
template<>
void to () const
 
template<typename T >
to () const
 Convert to anything or throw trying. More...
 
template<typename T >
to (const T &) const
 Similar to previous method, but uses a dummy value to get the target type. More...
 
int64_t toInt () const
 
uint64_t toUInt () const
 
float toFloat () const
 
double toDouble () const
 
std::string toString () const
 
template<typename T >
std::vector< T > toList () const
 
template<typename K , typename V >
std::map< K, V > toMap () const
 
AnyObject toObject () const
 
template<typename T >
boost::optional< T > toOptional () const
 
AnyValue toTuple (bool homogeneous) const
 
template<typename T >
T & as ()
 
int64_tasInt64 ()
 
uint64_tasUInt64 ()
 
int32_tasInt32 ()
 
uint32_tasUInt32 ()
 
int16_tasInt16 ()
 
uint16_tasUInt16 ()
 
int8_tasInt8 ()
 
uint8_tasUInt8 ()
 
double & asDouble ()
 
float & asFloat ()
 
std::string & asString ()
 
std::pair< char *, size_t > asRaw () const
 
boost::optional< AnyReferenceasOptional () const
 
AnyReference content () const
 
AnyReferenceVector asTupleValuePtr ()
 
AnyReferenceVector asListValuePtr ()
 
std::map< AnyReference,
AnyReference
asMapValuePtr ()
 
template<typename K >
AnyReference operator[] (const K &key)
 
AnyReference operator[] (const AnyReference &key)
 
template<typename E , typename K >
E & element (const K &key)
 Call operator[](key).as<E>, element type must match E. More...
 
template<typename K >
AnyReference at (const K &key)
 
template<typename K >
AnyReference at (const K &key) const
 
AnyReference at (const AnyReference &key)
 
AnyReference at (const AnyReference &key) const
 
size_t size () const
 
bool optionalHasValue () const
 
template<typename T >
void append (const T &element)
 
void append (const AnyReference &element)
 
template<typename K , typename V >
void insert (const K &key, const V &val)
 
void insert (const AnyReference &key, const AnyReference &val)
 
template<typename K >
AnyReference find (const K &key)
 
AnyIterator begin () const
 Return an iterator on the beginning of the container. More...
 
AnyIterator end () const
 Return an iterator on the end of the container. More...
 
AnyReference operator* () const
 Dereference pointer, iterator or dynamic. More...
 
UniqueAnyReference convert (TypeInterface *targetType) const
 
UniqueAnyReference convert (ListTypeInterface *targetType) const
 
UniqueAnyReference convert (StructTypeInterface *targetType) const
 
UniqueAnyReference convert (MapTypeInterface *targetType) const
 
UniqueAnyReference convert (IntTypeInterface *targetType) const
 
UniqueAnyReference convert (FloatTypeInterface *targetType) const
 
UniqueAnyReference convert (RawTypeInterface *targetType) const
 
UniqueAnyReference convert (StringTypeInterface *targetType) const
 
UniqueAnyReference convert (PointerTypeInterface *targetType) const
 
UniqueAnyReference convert (DynamicTypeInterface *targetType) const
 
UniqueAnyReference convert (OptionalTypeInterface *targetType) const
 
template<typename T >
T * ptr (bool check=true)
 
bool isValid () const
 
bool isValue () const
 
AnyReference convertCopy (TypeInterface *targetType) const
 Helper function that converts and always clone. More...
 
AnyReference clone () const
 
void destroy ()
 Deletes storage. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from qi::AnyValue
template<typename T >
static AnyValue make ()
 Create and return a AnyValue of type T. More...
 
static AnyValue makeVoid ()
 Construct a void AnyValue: defined, but with no data. More...
 
template<typename T >
static AnyValue from (const T &r)
 
static AnyValue makeTuple (const AnyReferenceVector &values)
 
static AnyValue makeTupleFromValue (const AutoAnyReference &v0, const AutoAnyReference &v1, const AutoAnyReference &v2, const AutoAnyReference &v3, const AutoAnyReference &v4, const AutoAnyReference &v5, const AutoAnyReference &v6, const AutoAnyReference &v7, const AutoAnyReference &v8, const AutoAnyReference &v9)
 
template<typename T >
static AnyValue makeList (const AnyReferenceVector &values)
 
static AnyValue makeGenericList (const AnyReferenceVector &values)
 
template<typename K , typename V >
static AnyValue makeMap (const std::map< AnyReference, AnyReference > &values)
 
static AnyValue makeGenericMap (const std::map< AnyReference, AnyReference > &values)
 
- Static Public Member Functions inherited from qi::detail::AnyReferenceBase
template<typename T >
static AnyReference from (const T &ref)
 
template<typename T >
static AnyReference fromPtr (const T *ptr)
 
- Protected Member Functions inherited from qi::detail::AnyReferenceBase
 AnyReferenceBase ()
 Constructs an invalid reference, pointing to nothing. More...
 
 AnyReferenceBase (TypeInterface *type)
 
 AnyReferenceBase (TypeInterface *type, void *value)
 
AnyReference _element (const AnyReference &key, bool throwOnFailure, bool autoInsert)
 
- Protected Attributes inherited from qi::detail::AnyReferenceBase
TypeInterface_type
 
void * _value
 

Detailed Description

AnyValue with Iterator kind, behaving as a STL-compatible iterator

Definition at line 16 of file anyiterator.hpp.

Member Typedef Documentation

Definition at line 22 of file anyiterator.hpp.

using qi::AnyIterator::iterator_category = std::forward_iterator_tag

Definition at line 23 of file anyiterator.hpp.

Definition at line 20 of file anyiterator.hpp.

Definition at line 21 of file anyiterator.hpp.

Definition at line 19 of file anyiterator.hpp.

Constructor & Destructor Documentation

qi::AnyIterator::AnyIterator ( )
inline

Definition at line 27 of file anyiterator.hxx.

qi::AnyIterator::AnyIterator ( const AnyReference p)
inline

Definition at line 30 of file anyiterator.hxx.

qi::AnyIterator::AnyIterator ( const AnyValue v)
inline

Definition at line 34 of file anyiterator.hxx.

template<typename T >
qi::AnyIterator::AnyIterator ( const T &  ref)
explicit

Definition at line 23 of file anyiterator.hxx.

Member Function Documentation

AnyReference qi::AnyIterator::operator* ( )
inline

Dereference.

Definition at line 14 of file anyiterator.hxx.

AnyIterator & qi::AnyIterator::operator++ ( )
inline

Iterator pre-increment.

Definition at line 38 of file anyiterator.hxx.

AnyIterator qi::AnyIterator::operator++ ( int  )
inline

Iterator post-increment.

Definition at line 46 of file anyiterator.hxx.


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