Kea  2.3.7
isc::data::ListElement Class Reference

#include <data.h>

+ Inheritance diagram for isc::data::ListElement:

Public Member Functions

 ListElement (const Position &pos=ZERO_POSITION())
 
void add (ElementPtr e)
 Adds an ElementPtr to the list. More...
 
bool empty () const
 Return true if there are no elements in the list. More...
 
bool equals (const Element &other) const
 
virtual ConstElementPtr get (const int i) const
 Returns the ElementPtr at the given index. More...
 
virtual ConstElementPtr get (const std::string &name) const
 Returns the ElementPtr at the given key. More...
 
ConstElementPtr get (int i) const
 Returns the ElementPtr at the given index. More...
 
ElementPtr getNonConst (int i) const
 returns element as non-const pointer More...
 
virtual bool getValue (bool &t) const
 
virtual bool getValue (double &t) const
 
virtual bool getValue (int64_t &t) const
 
virtual bool getValue (std::map< std::string, ConstElementPtr > &t) const
 
virtual bool getValue (std::string &t) const
 
virtual bool getValue (std::vector< ElementPtr > &t) const
 
bool getValue (std::vector< ElementPtr > &t) const
 
const std::vector< ElementPtr > & listValue () const
 
virtual void remove (const int i)
 Removes the element at the given position. More...
 
virtual void remove (const std::string &name)
 Remove the ElementPtr at the given key. More...
 
void remove (int i)
 Removes the element at the given position. More...
 
virtual void set (const size_t i, ElementPtr element)
 Sets the ElementPtr at the given index. More...
 
virtual void set (const std::string &name, ConstElementPtr element)
 Sets the ElementPtr at the given key. More...
 
void set (size_t i, ElementPtr e)
 Sets the ElementPtr at the given index. More...
 
virtual bool setValue (const bool t)
 
virtual bool setValue (const double v)
 
bool setValue (const int i)
 
bool setValue (const long int i)
 
virtual bool setValue (const long long int v)
 
virtual bool setValue (const std::map< std::string, ConstElementPtr > &v)
 
virtual bool setValue (const std::string &v)
 
virtual bool setValue (const std::vector< ElementPtr > &v)
 
bool setValue (const std::vector< ElementPtr > &v)
 
size_t size () const
 Returns the number of elements in the list. More...
 
void sort (std::string const &index=std::string())
 Sorts the elements inside the list. More...
 
void toJSON (std::ostream &ss) const
 Converts the Element to JSON format and appends it to the given stringstream. More...
 
- Public Member Functions inherited from isc::data::Element
virtual ~Element ()
 
const PositiongetPosition () const
 Returns position where the data element's value starts in a configuration string. More...
 
int getType () const
 
std::string str () const
 Returns a string representing the Element and all its child elements; note that this is different from stringValue(), which only returns the single value of a StringElement. More...
 
std::string toWire () const
 Returns the wireformat for the Element and all its child elements. More...
 
void toWire (std::ostream &out) const
 
virtual int64_t intValue () const
 
virtual double doubleValue () const
 
virtual bool boolValue () const
 
virtual std::string stringValue () const
 
virtual const std::map< std::string, ConstElementPtr > & mapValue () const
 
virtual bool getValue (int64_t &t) const
 
virtual bool getValue (double &t) const
 
virtual bool getValue (bool &t) const
 
virtual bool getValue (std::string &t) const
 
virtual bool getValue (std::map< std::string, ConstElementPtr > &t) const
 
virtual bool setValue (const long long int v)
 
bool setValue (const long int i)
 
bool setValue (const int i)
 
virtual bool setValue (const double v)
 
virtual bool setValue (const bool t)
 
virtual bool setValue (const std::string &v)
 
virtual bool setValue (const std::map< std::string, ConstElementPtr > &v)
 
virtual ConstElementPtr get (const std::string &name) const
 Returns the ElementPtr at the given key. More...
 
virtual void set (const std::string &name, ConstElementPtr element)
 Sets the ElementPtr at the given key. More...
 
virtual void remove (const std::string &name)
 Remove the ElementPtr at the given key. More...
 
virtual bool contains (const std::string &name) const
 Checks if there is data at the given key. More...
 
virtual ConstElementPtr find (const std::string &identifier) const
 Recursively finds any data at the given identifier. More...
 
virtual bool find (const std::string &identifier, ConstElementPtr &t) const
 See Element::find() More...
 
void removeEmptyContainersRecursively ()
 Remove all empty maps and lists from this Element and its descendants. More...
 

Additional Inherited Members

- Public Types inherited from isc::data::Element
enum  types {
  integer , real , boolean , null ,
  string , list , map , any
}
 
- Static Public Member Functions inherited from isc::data::Element
static const PositionZERO_POSITION ()
 Returns Position object with line_ and pos_ set to 0, and with an empty file name. More...
 
static ElementPtr create (const Position &pos=ZERO_POSITION())
 
static ElementPtr create (const long long int i, const Position &pos=ZERO_POSITION())
 
static ElementPtr create (const int i, const Position &pos=ZERO_POSITION())
 
static ElementPtr create (const long int i, const Position &pos=ZERO_POSITION())
 
static ElementPtr create (const uint32_t i, const Position &pos=ZERO_POSITION())
 
static ElementPtr create (const double d, const Position &pos=ZERO_POSITION())
 
static ElementPtr create (const bool b, const Position &pos=ZERO_POSITION())
 
static ElementPtr create (const std::string &s, const Position &pos=ZERO_POSITION())
 
static ElementPtr create (const char *s, const Position &pos=ZERO_POSITION())
 
static ElementPtr createList (const Position &pos=ZERO_POSITION())
 Creates an empty ListElement type ElementPtr. More...
 
static ElementPtr createMap (const Position &pos=ZERO_POSITION())
 Creates an empty MapElement type ElementPtr. More...
 
static ElementPtr fromJSON (const std::string &in, bool preproc=false)
 These functions will parse the given string (JSON) representation of a compound element. More...
 
static ElementPtr fromJSON (std::istream &in, bool preproc=false)
 Creates an Element from the given input stream containing JSON formatted data. More...
 
static ElementPtr fromJSON (std::istream &in, const std::string &file_name, bool preproc=false)
 Creates an Element from the given input stream containing JSON formatted data. More...
 
static ElementPtr fromJSON (std::istream &in, const std::string &file, int &line, int &pos)
 Creates an Element from the given input stream, where we keep track of the location in the stream for error reporting. More...
 
static ElementPtr fromJSONFile (const std::string &file_name, bool preproc=false)
 Reads contents of specified file and interprets it as JSON. More...
 
static std::string typeToName (Element::types type)
 Returns the name of the given type as a string. More...
 
static Element::types nameToType (const std::string &type_name)
 Converts the string to the corresponding type Throws a TypeError if the name is unknown. More...
 
static void preprocess (std::istream &in, std::stringstream &out)
 input text preprocessor More...
 
static ElementPtr fromWire (std::stringstream &in, int length)
 These function pparse the wireformat at the given stringstream (of the given length). More...
 
static ElementPtr fromWire (const std::string &s)
 Creates an Element from the wire format in the given string Since the wire format is JSON, this is the same as fromJSON, and could be removed. More...
 
- Protected Member Functions inherited from isc::data::Element
 Element (int t, const Position &pos=ZERO_POSITION())
 Constructor. More...
 

Detailed Description

Definition at line 657 of file data.h.

Constructor & Destructor Documentation

◆ ListElement()

isc::data::ListElement::ListElement ( const Position pos = ZERO_POSITION())
inline

Definition at line 661 of file data.h.

Member Function Documentation

◆ add()

void isc::data::ListElement::add ( ElementPtr  element)
inlinevirtual

Adds an ElementPtr to the list.

Parameters
elementThe ElementPtr to add

Reimplemented from isc::data::Element.

Definition at line 681 of file data.h.

◆ empty()

bool isc::data::ListElement::empty ( ) const
inlinevirtual

Return true if there are no elements in the list.

Reimplemented from isc::data::Element.

Definition at line 686 of file data.h.

◆ equals()

bool isc::data::ListElement::equals ( const Element other) const
virtual
Returns
true if the other ElementPtr has the same type and value

Implements isc::data::Element.

Definition at line 1012 of file data.cc.

References isc::data::Element::get(), isc::data::Element::getType(), and isc::data::Element::size().

+ Here is the call graph for this function:

◆ get() [1/3]

ConstElementPtr isc::data::Element::get

Returns the ElementPtr at the given index.

If the index is out of bounds, this function throws an std::out_of_range exception.

Parameters
iThe position of the ElementPtr to return

Definition at line 280 of file data.cc.

◆ get() [2/3]

ConstElementPtr isc::data::Element::get

Returns the ElementPtr at the given key.

Parameters
nameThe key of the Element to return
Returns
The ElementPtr at the given key, or null if not present

Definition at line 319 of file data.cc.

◆ get() [3/3]

ConstElementPtr isc::data::ListElement::get ( int  i) const
inlinevirtual

Returns the ElementPtr at the given index.

If the index is out of bounds, this function throws an std::out_of_range exception.

Parameters
iThe position of the ElementPtr to return

Reimplemented from isc::data::Element.

Definition at line 675 of file data.h.

◆ getNonConst()

ElementPtr isc::data::ListElement::getNonConst ( int  i) const
inlinevirtual

returns element as non-const pointer

Parameters
iThe position of the ElementPtr to retrieve
Returns
specified element pointer

Reimplemented from isc::data::Element.

Definition at line 676 of file data.h.

◆ getValue() [1/7]

bool isc::data::Element::getValue

Definition at line 244 of file data.cc.

◆ getValue() [2/7]

bool isc::data::Element::getValue

Definition at line 243 of file data.cc.

◆ getValue() [3/7]

bool isc::data::Element::getValue

Definition at line 242 of file data.cc.

◆ getValue() [4/7]

bool isc::data::Element::getValue

Definition at line 247 of file data.cc.

◆ getValue() [5/7]

bool isc::data::Element::getValue

Definition at line 245 of file data.cc.

◆ getValue() [6/7]

bool isc::data::Element::getValue

Definition at line 246 of file data.cc.

◆ getValue() [7/7]

bool isc::data::ListElement::getValue ( std::vector< ElementPtr > &  t) const
inlinevirtual

Reimplemented from isc::data::Element.

Definition at line 665 of file data.h.

◆ listValue()

const std::vector<ElementPtr>& isc::data::ListElement::listValue ( ) const
inlinevirtual

Reimplemented from isc::data::Element.

Definition at line 663 of file data.h.

◆ remove() [1/3]

void isc::data::Element::remove

Removes the element at the given position.

If the index is out of nothing happens.

Parameters
iThe index of the element to remove.

Definition at line 301 of file data.cc.

◆ remove() [2/3]

void isc::data::Element::remove

Remove the ElementPtr at the given key.

Parameters
nameThe key of the Element to remove

Definition at line 328 of file data.cc.

◆ remove() [3/3]

void isc::data::ListElement::remove ( int  i)
inlinevirtual

Removes the element at the given position.

If the index is out of nothing happens.

Parameters
iThe index of the element to remove.

Reimplemented from isc::data::Element.

Definition at line 683 of file data.h.

◆ set() [1/3]

void isc::data::Element::set

Sets the ElementPtr at the given index.

If the index is out of bounds, this function throws an std::out_of_range exception.

Parameters
iThe position of the ElementPtr to set
elementThe ElementPtr to set at the position

Definition at line 292 of file data.cc.

◆ set() [2/3]

void isc::data::Element::set

Sets the ElementPtr at the given key.

Parameters
nameThe key of the Element to set
elementThe ElementPtr to set at the given key.

Definition at line 324 of file data.cc.

◆ set() [3/3]

void isc::data::ListElement::set ( size_t  i,
ElementPtr  element 
)
inlinevirtual

Sets the ElementPtr at the given index.

If the index is out of bounds, this function throws an std::out_of_range exception.

Parameters
iThe position of the ElementPtr to set
elementThe ElementPtr to set at the position

Reimplemented from isc::data::Element.

Definition at line 678 of file data.h.

◆ setValue() [1/9]

bool isc::data::Element::setValue

Definition at line 264 of file data.cc.

◆ setValue() [2/9]

bool isc::data::Element::setValue

Definition at line 263 of file data.cc.

◆ setValue() [3/9]

bool isc::data::Element::setValue
inline

Definition at line 262 of file data.h.

◆ setValue() [4/9]

bool isc::data::Element::setValue
inline

Definition at line 261 of file data.h.

◆ setValue() [5/9]

bool isc::data::Element::setValue

Definition at line 260 of file data.cc.

◆ setValue() [6/9]

bool isc::data::Element::setValue

Definition at line 267 of file data.cc.

◆ setValue() [7/9]

bool isc::data::Element::setValue

Definition at line 265 of file data.cc.

◆ setValue() [8/9]

bool isc::data::Element::setValue

Definition at line 266 of file data.cc.

◆ setValue() [9/9]

bool isc::data::ListElement::setValue ( const std::vector< ElementPtr > &  v)
inlinevirtual

Reimplemented from isc::data::Element.

Definition at line 670 of file data.h.

◆ size()

size_t isc::data::ListElement::size ( ) const
inlinevirtual

Returns the number of elements in the list.

Reimplemented from isc::data::Element.

Definition at line 685 of file data.h.

◆ sort()

void isc::data::ListElement::sort ( std::string const &  index = std::string())

Sorts the elements inside the list.

The list must contain elements of the same type. Call with the key by which you want to sort when the list contains maps. Nested lists are not supported. Call without a parameter when sorting any other type.

Parameters
indexthe key by which you want to sort when the list contains maps

Definition at line 1030 of file data.cc.

References isc_throw.

◆ toJSON()

void isc::data::ListElement::toJSON ( std::ostream &  ss) const
virtual

Converts the Element to JSON format and appends it to the given stringstream.

Implements isc::data::Element.

Definition at line 883 of file data.cc.


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