JsonCpp project page Classes Namespace JsonCpp home page

Json::ValueIteratorBase Class Reference

base class for Value iterators. More...

#include <json/value.h>

Inherited by Json::ValueConstIterator, and Json::ValueIterator.

Public Types

using iterator_category = std::bidirectional_iterator_tag
 
using size_t = unsigned int
 
using difference_type = int
 
using SelfType = ValueIteratorBase
 

Public Member Functions

bool operator== (const SelfType &other) const
 
bool operator!= (const SelfType &other) const
 
difference_type operator- (const SelfType &other) const
 
Value key () const
 Return either the index or the member name of the referenced value as a Value. More...
 
UInt index () const
 Return the index of the referenced Value, or -1 if it is not an arrayValue. More...
 
String name () const
 Return the member name of the referenced Value, or "" if it is not an objectValue. More...
 
 __declspec (deprecated("Use `key = name();` instead.")) char const *memberName() const
 Return the member name of the referenced Value. More...
 
char const * memberName (char const **end) const
 Return the member name of the referenced Value, or NULL if it is not an objectValue. More...
 
 ValueIteratorBase ()
 
 ValueIteratorBase (const Value::ObjectValues::iterator &current)
 

Protected Member Functions

const Valuederef () const
 
Valuederef ()
 
void increment ()
 
void decrement ()
 
difference_type computeDistance (const SelfType &other) const
 
bool isEqual (const SelfType &other) const
 
void copy (const SelfType &other)
 

Detailed Description

base class for Value iterators.

Member Typedef Documentation

◆ difference_type

◆ iterator_category

using Json::ValueIteratorBase::iterator_category = std::bidirectional_iterator_tag

◆ SelfType

◆ size_t

using Json::ValueIteratorBase::size_t = unsigned int

Constructor & Destructor Documentation

◆ ValueIteratorBase() [1/2]

Json::ValueIteratorBase::ValueIteratorBase ( )

◆ ValueIteratorBase() [2/2]

Json::ValueIteratorBase::ValueIteratorBase ( const Value::ObjectValues::iterator &  current)
explicit

Member Function Documentation

◆ __declspec()

Json::ValueIteratorBase::__declspec ( deprecated("Use `key = name();` instead.")  ) const

Return the member name of the referenced Value.

"" if it is not an objectValue.

Deprecated:
This cannot be used for UTF-8 strings, since there can be embedded nulls.

◆ computeDistance()

ValueIteratorBase::difference_type Json::ValueIteratorBase::computeDistance ( const SelfType other) const
protected

◆ copy()

void Json::ValueIteratorBase::copy ( const SelfType other)
protected

◆ decrement()

void Json::ValueIteratorBase::decrement ( )
protected

◆ deref() [1/2]

Value & Json::ValueIteratorBase::deref ( )
protected

◆ deref() [2/2]

const Value & Json::ValueIteratorBase::deref ( ) const
protected

Internal utility functions to assist with implementing other iterator functions. The const and non-const versions of the "deref" protected methods expose the protected current_ member variable in a way that can often be optimized away by the compiler.

◆ increment()

void Json::ValueIteratorBase::increment ( )
protected

◆ index()

UInt Json::ValueIteratorBase::index ( ) const

Return the index of the referenced Value, or -1 if it is not an arrayValue.

◆ isEqual()

bool Json::ValueIteratorBase::isEqual ( const SelfType other) const
protected

◆ key()

Value Json::ValueIteratorBase::key ( ) const

Return either the index or the member name of the referenced value as a Value.

◆ memberName()

char const * Json::ValueIteratorBase::memberName ( char const **  end) const

Return the member name of the referenced Value, or NULL if it is not an objectValue.

Note
Better version than memberName(). Allows embedded nulls.

◆ name()

String Json::ValueIteratorBase::name ( ) const

Return the member name of the referenced Value, or "" if it is not an objectValue.

Note
Avoid c_str() on result, as embedded zeroes are possible.

◆ operator!=()

bool Json::ValueIteratorBase::operator!= ( const SelfType other) const
inline

◆ operator-()

difference_type Json::ValueIteratorBase::operator- ( const SelfType other) const
inline

◆ operator==()

bool Json::ValueIteratorBase::operator== ( const SelfType other) const
inline

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