Kea 3.1.5
isc::data::BigIntElement Class Reference

Wrapper over int128_t. More...

#include <data.h>

+ Inheritance diagram for isc::data::BigIntElement:

Public Member Functions

 BigIntElement (const int128_t &v, const Position &pos=ZERO_POSITION())
 Constructor.
 
int128_t bigIntValue () const override
 Retrieve the underlying big integer value.
 
bool equals (const Element &other, unsigned level=MAX_NESTING_LEVEL) const override
 Checks whether the other Element is equal.
 
bool setValue (const int128_t &v) override
 Sets the underlying big integer value.
 
void toJSON (std::ostream &ss, unsigned level=MAX_NESTING_LEVEL) const override
 Converts the Element to JSON format and appends it to the given stringstream.
 
- 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.
 
types getType () const
 
std::string str () const
 Returns a string representing the Element and all its child elements.
 
std::string toWire () const
 Returns the wireformat for the Element and all its child elements.
 
void toWire (std::ostream &out) const
 Appends the wireformat for the Element to the stream.
 
virtual int64_t intValue () const
 Return the integer value.
 
virtual double doubleValue () const
 Return the double value.
 
virtual bool boolValue () const
 Return the boolean value.
 
virtual std::string stringValue () const
 Return the string value.
 
virtual const std::vector< ElementPtr > & listValue () const
 Return the list value.
 
virtual const std::map< std::string, ConstElementPtr > & mapValue () const
 Return the map value.
 
bool setValue (const long int i)
 Set the integer value (long int overload).
 
bool setValue (const int i)
 Set the integer value (int overload).
 
virtual ConstElementPtr get (const int i) const
 Returns the ElementPtr at the given index.
 
virtual ElementPtr getNonConst (const int i) const
 returns element as non-const pointer.
 
virtual void set (const size_t i, ElementPtr element)
 Sets the ElementPtr at the given index.
 
virtual void add (ElementPtr element)
 Adds an ElementPtr to the list.
 
virtual void remove (const int i)
 Removes the element at the given position.
 
virtual size_t size () const
 Returns the number of elements in the list.
 
virtual bool empty () const
 Return true if there are no elements in the list.
 
virtual ConstElementPtr get (const std::string &name) const
 Returns the ElementPtr at the given key.
 
virtual void set (const std::string &name, ConstElementPtr element)
 Sets the ElementPtr at the given key.
 
virtual void remove (const std::string &name)
 Remove the ElementPtr at the given key.
 
virtual bool contains (const std::string &name) const
 Checks if there is data at the given key.
 
virtual ConstElementPtr find (const std::string &identifier) const
 Recursively finds any data at the given identifier.
 
virtual bool find (const std::string &identifier, ConstElementPtr &t) const
 See Element::find()
 
void removeEmptyContainersRecursively (unsigned level=MAX_NESTING_LEVEL)
 Remove all empty maps and lists from this Element and its descendants.
 

Additional Inherited Members

- Public Types inherited from isc::data::Element
enum  types : uint16_t {
  integer = 0 , real = 1 , boolean = 2 , null = 3 ,
  string = 4 , bigint = 5 , list = 6 , map = 7 ,
  any = 8
}
 The types that an Element can hold. More...
 
- 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.
 
static ElementPtr create (const Position &pos=ZERO_POSITION())
 Create a NullElement.
 
static ElementPtr create (const long long int i, const Position &pos=ZERO_POSITION())
 Create an IntElement.
 
static ElementPtr create (const int i, const Position &pos=ZERO_POSITION())
 Create an IntElement (int overload).
 
static ElementPtr create (const long int i, const Position &pos=ZERO_POSITION())
 Create an IntElement (long int overload).
 
static ElementPtr create (const uint32_t i, const Position &pos=ZERO_POSITION())
 Create an IntElement (int32_t overload).
 
static ElementPtr create (const isc::util::int128_t &i, const Position &pos=ZERO_POSITION())
 Create a BigIntElement.
 
static ElementPtr create (const double d, const Position &pos=ZERO_POSITION())
 Create a DoubleElement.
 
static ElementPtr create (const bool b, const Position &pos=ZERO_POSITION())
 Create a BoolElement.
 
static ElementPtr create (const std::string &s, const Position &pos=ZERO_POSITION())
 Create a StringElement.
 
static ElementPtr create (const char *s, const Position &pos=ZERO_POSITION())
 Create a StringElement (char* overload).
 
static ElementPtr createList (const Position &pos=ZERO_POSITION())
 Creates an empty ListElement type ElementPtr.
 
static ElementPtr createMap (const Position &pos=ZERO_POSITION())
 Creates an empty MapElement type ElementPtr.
 
static ElementPtr fromJSON (const std::string &in, bool preproc=false)
 These functions will parse the given string (JSON) representation of a compound element.
 
static ElementPtr fromJSON (std::istream &in, bool preproc=false)
 Creates an Element from the given input stream containing JSON formatted data.
 
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.
 
static ElementPtr fromJSON (std::istream &in, const std::string &file, int &line, int &pos, unsigned level=MAX_NESTING_LEVEL)
 Creates an Element from the given input stream, where we keep track of the location in the stream for error reporting.
 
static ElementPtr fromJSONFile (const std::string &file_name, bool preproc=false)
 Reads contents of specified file and interprets it as JSON.
 
static std::string typeToName (Element::types type)
 Returns the name of the given type as a string.
 
static Element::types nameToType (const std::string &type_name)
 Converts the string to the corresponding type Throws a TypeError if the name is unknown.
 
static void preprocess (std::istream &in, std::stringstream &out)
 input text preprocessor.
 
static ElementPtr fromWire (std::stringstream &in, int length)
 These function parse the wireformat at the given stringstream (of the given length).
 
static ElementPtr fromWire (const std::string &s)
 Creates an Element from the wire format in the given string.
 
- Static Public Attributes inherited from isc::data::Element
static constexpr unsigned MAX_NESTING_LEVEL = 100U
 Maximum nesting level of Element objects.
 
- Protected Member Functions inherited from isc::data::Element
 Element (types t, const Position &pos=ZERO_POSITION())
 Constructor.
 

Detailed Description

Wrapper over int128_t.

Definition at line 793 of file data.h.

Constructor & Destructor Documentation

◆ BigIntElement()

isc::data::BigIntElement::BigIntElement ( const int128_t & v,
const Position & pos = ZERO_POSITION() )
inline

Constructor.

Definition at line 800 of file data.h.

References isc::data::Element::Element(), and isc::data::Element::bigint.

+ Here is the call graph for this function:

Member Function Documentation

◆ bigIntValue()

int128_t isc::data::BigIntElement::bigIntValue ( ) const
inlineoverridevirtual

Retrieve the underlying big integer value.

Returns
the underlying value

Reimplemented from isc::data::Element.

Definition at line 807 of file data.h.

◆ equals()

bool isc::data::BigIntElement::equals ( const Element & other,
unsigned level = MAX_NESTING_LEVEL ) const
overridevirtual

Checks whether the other Element is equal.

Parameters
otherThe other element to compare with.
levelThe maximum level of recursion. Ignored.
Returns
true if the other ElementPtr has the same value and the same type (or a different and compatible type), false otherwise.

Implements isc::data::Element.

Definition at line 1107 of file data.cc.

References isc::data::Element::Element(), isc::data::Element::bigint, isc::data::Element::bigIntValue(), isc::data::Element::getType(), isc::data::Element::integer, and isc::data::Element::intValue().

+ Here is the call graph for this function:

◆ setValue()

bool isc::data::BigIntElement::setValue ( const int128_t & v)
inlineoverridevirtual

Sets the underlying big integer value.

Returns
true for no reason

Reimplemented from isc::data::Element.

Definition at line 814 of file data.h.

◆ toJSON()

void isc::data::BigIntElement::toJSON ( std::ostream & ss,
unsigned level = MAX_NESTING_LEVEL ) const
overridevirtual

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

Parameters
ssThe output stream where to append the JSON format.
levelThe maximum level of recursion. Ignored.

Implements isc::data::Element.

Definition at line 900 of file data.cc.

References isc::data::Element::bigIntValue().

+ Here is the call graph for this function:

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