P4C
The P4 Compiler
Loading...
Searching...
No Matches
P4::Util::JsonValue Class Referencefinal
Inheritance diagram for P4::Util::JsonValue:
[legend]

Public Types

enum  Kind {
  String , Number , True , False ,
  Null
}
 

Public Member Functions

 JsonValue (big_int v)
 
 JsonValue (bool b)
 
 JsonValue (const char *s)
 
 JsonValue (const std::string &s)
 
 JsonValue (cstring s)
 
 JsonValue (double v)
 
 JsonValue (float v)
 
 JsonValue (int v)
 
 JsonValue (long long v)
 
 JsonValue (long v)
 
 JsonValue (unsigned long long v)
 
 JsonValue (unsigned long v)
 
 JsonValue (unsigned v)
 
bool getBool () const
 
int getInt () const
 
cstring getString () const
 
big_int getValue () const
 
bool isBool () const
 
bool isNull () const
 
bool isNumber () const
 
bool isString () const
 
bool operator== (const big_int &v) const
 
bool operator== (const char *s) const
 
bool operator== (const cstring &s) const
 
bool operator== (const double &v) const
 
bool operator== (const float &v) const
 
bool operator== (const JsonValue &other) const
 
bool operator== (const std::string &s) const
 
template<typename T , typename std::enable_if_t< std::is_integral_v< T >, int > = 0>
bool operator== (const T &v) const
 
void serialize (std::ostream &out) const override
 
- Public Member Functions inherited from P4::Util::IJson
 DECLARE_TYPEINFO (IJson)
 
void dump () const
 
cstring toString () const
 
- Public Member Functions inherited from P4::ICastable
template<typename T >
T & as ()
 Tries to convert the class to type T. A BUG occurs if the cast fails.
 
template<typename T >
const T & as () const
 Tries to convert the class to type T. A BUG occurs if the cast fails.
 
template<typename T >
T * checkedTo ()
 Performs a checked cast. A BUG occurs if the cast fails.
 
template<typename T >
const T * checkedTo () const
 Performs a checked cast. A BUG occurs if the cast fails.
 
- Public Member Functions inherited from P4::RTTI::Base
template<typename T >
bool is () const noexcept
 
virtual bool isA (TypeId typeId) const noexcept=0
 
template<typename T >
const T * to () const noexcept
 Same as to, but returns const pointer to T.
 
template<typename T >
T * to () noexcept
 
virtual TypeId typeId () const noexcept=0
 

Static Public Attributes

static JsonValuenull = new JsonValue()
 

Additional Inherited Members

- Protected Member Functions inherited from P4::RTTI::Base
virtual const void * toImpl (TypeId typeId) const noexcept=0
 

Member Function Documentation

◆ serialize()

void P4::Util::JsonValue::serialize ( std::ostream & out) const
overridevirtual

Implements P4::Util::IJson.