P4C
The P4 Compiler
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
json::map Class Reference
Inheritance diagram for json::map:
[legend]

Public Member Functions

 map (const map &)=default
 
 map (const std::initializer_list< std::pair< std::string, obj && > > &init)
 
 map (map &&)=default
 
const mapas_map () const override
 
mapas_map () override
 
std::unique_ptr< objclone () const override
 
std::unique_ptr< objcopy () &&override
 
map_base::size_type count (const char *str) const
 
size_type count (const key_type &a) const
 
map_base::size_type count (int64_t n) const
 
map_base::size_type count (std::string &str) const
 
map_base::size_type erase (const char *str)
 
size_type erase (const obj *&k)
 
iterator erase (const_iterator pos)
 
map_base::size_type erase (int64_t n)
 
mapmerge (const map &a)
 
bool operator!= (const char *str) const
 
bool operator!= (const obj &a) const
 
bool operator!= (int64_t val) const
 
bool operator< (const obj &a) const override
 
bool operator<= (const obj &a) const
 
mapoperator= (const map &) &=default
 
mapoperator= (map &&) &=default
 
bool operator== (const obj &a) const override
 
bool operator> (const obj &a) const
 
bool operator>= (const obj &a) const
 
element_ref operator[] (const char *str)
 
objoperator[] (const char *str) const
 
element_ref operator[] (const std::string &str)
 
objoperator[] (const std::string &str) const
 
objoperator[] (const std::unique_ptr< obj > &i) const
 
element_ref operator[] (int64_t n)
 
objoperator[] (int64_t n) const
 
element_ref operator[] (std::unique_ptr< obj > &&i)
 
void print_on (std::ostream &out, int=0, int=80, const char *="") const override
 
std::unique_ptr< objremove (const char *key)
 
bool test_width (int &limit) const override
 
- Public Member Functions inherited from json::obj
 obj (const obj &)=default
 
 obj (obj &&)=default
 
virtual numberas_number ()
 
virtual const numberas_number () const
 
virtual stringas_string ()
 
virtual const stringas_string () const
 
virtual vectoras_vector ()
 
virtual const vectoras_vector () const
 
virtual const char * c_str () const
 
template<class T>
bool is () const
 
bool operator!= (const char *str) const
 
bool operator!= (const obj &a) const
 
bool operator!= (int64_t val) const
 
bool operator<= (const obj &a) const
 
objoperator= (const obj &) &=default
 
objoperator= (obj &&) &=default
 
virtual bool operator== (const char *) const
 
virtual bool operator== (const std::string &) const
 
virtual bool operator== (const string &) const
 
virtual bool operator== (int64_t) const
 
bool operator> (const obj &a) const
 
bool operator>= (const obj &a) const
 
template<class T>
T & to ()
 
template<class T>
const T & to () const
 
std::string toString () const
 
- Public Member Functions inherited from P4::ordered_map< obj *, std::unique_ptr< obj >, obj::ptrless >
 ordered_map (const ordered_map &a)
 
 ordered_map (const ordered_map &a)
 
 ordered_map (InputIt first, InputIt last)
 
 ordered_map (InputIt first, InputIt last)
 
 ordered_map (ordered_map &&a)=default
 
 ordered_map (ordered_map &&a)=default
 
 ordered_map (std::initializer_list< value_type > il)
 
 ordered_map (std::initializer_list< value_type > il)
 
std::unique_ptr< obj > & at (const obj *&x)
 
std::unique_ptr< obj > & at (const obj *&x)
 
const std::unique_ptr< obj > & at (const obj *&x) const
 
const std::unique_ptr< obj > & at (const obj *&x) const
 
const_iterator begin () const noexcept
 
const_iterator begin () const noexcept
 
iterator begin () noexcept
 
iterator begin () noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cend () const noexcept
 
const_iterator cend () const noexcept
 
void clear ()
 
void clear ()
 
size_type count (const key_type &a) const
 
size_type count (const key_type &a) const
 
const_reverse_iterator crbegin () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
const_reverse_iterator crend () const noexcept
 
const_reverse_iterator crend () const noexcept
 
std::pair< iterator, bool > emplace (KK &&k, VV &&...v)
 
std::pair< iterator, bool > emplace (KK &&k, VV &&...v)
 
std::pair< iterator, bool > emplace_hint (iterator pos, KK &&k, VV &&...v)
 
std::pair< iterator, bool > emplace_hint (iterator pos, KK &&k, VV &&...v)
 
bool empty () const noexcept
 
bool empty () const noexcept
 
const_iterator end () const noexcept
 
const_iterator end () const noexcept
 
iterator end () noexcept
 
iterator end () noexcept
 
size_type erase (const obj *&k)
 
size_type erase (const obj *&k)
 
iterator erase (const_iterator pos)
 
iterator erase (const_iterator pos)
 
iterator find (const key_type &a)
 
iterator find (const key_type &a)
 
const_iterator find (const key_type &a) const
 
const_iterator find (const key_type &a) const
 
std::pair< iterator, bool > insert (const value_type &v)
 
std::pair< iterator, bool > insert (const value_type &v)
 
void insert (InputIterator b, InputIterator e)
 
void insert (InputIterator b, InputIterator e)
 
std::pair< iterator, bool > insert (iterator pos, const value_type &v)
 
std::pair< iterator, bool > insert (iterator pos, const value_type &v)
 
void insert (iterator pos, InputIterator b, InputIterator e)
 
void insert (iterator pos, InputIterator b, InputIterator e)
 
iterator lower_bound (const key_type &a)
 
iterator lower_bound (const key_type &a)
 
const_iterator lower_bound (const key_type &a) const
 
const_iterator lower_bound (const key_type &a) const
 
size_type max_size () const noexcept
 
size_type max_size () const noexcept
 
bool operator!= (const ordered_map &a) const
 
bool operator!= (const ordered_map &a) const
 
bool operator< (const ordered_map &a) const
 
bool operator< (const ordered_map &a) const
 
ordered_mapoperator= (const ordered_map &a)
 
ordered_mapoperator= (const ordered_map &a)
 
ordered_mapoperator= (ordered_map &&a)=default
 
ordered_mapoperator= (ordered_map &&a)=default
 
bool operator== (const ordered_map &a) const
 
bool operator== (const ordered_map &a) const
 
std::unique_ptr< obj > & operator[] (const obj *&x)
 
std::unique_ptr< obj > & operator[] (const obj *&x)
 
std::unique_ptr< obj > & operator[] (obj *&&x)
 
std::unique_ptr< obj > & operator[] (obj *&&x)
 
const_reverse_iterator rbegin () const noexcept
 
const_reverse_iterator rbegin () const noexcept
 
reverse_iterator rbegin () noexcept
 
reverse_iterator rbegin () noexcept
 
const_reverse_iterator rend () const noexcept
 
const_reverse_iterator rend () const noexcept
 
reverse_iterator rend () noexcept
 
reverse_iterator rend () noexcept
 
size_type size () const noexcept
 
size_type size () const noexcept
 
void sort (Compare comp)
 
void sort (Compare comp)
 
iterator upper_bound (const key_type &a)
 
iterator upper_bound (const key_type &a)
 
const_iterator upper_bound (const key_type &a) const
 
const_iterator upper_bound (const key_type &a) const
 
iterator upper_bound_pred (const key_type &a)
 
iterator upper_bound_pred (const key_type &a)
 
const_iterator upper_bound_pred (const key_type &a) const
 
const_iterator upper_bound_pred (const key_type &a) const
 

Friends

std::ostream & operator<< (std::ostream &out, const element_ref &el)
 

Additional Inherited Members

- Public Types inherited from P4::ordered_map< obj *, std::unique_ptr< obj >, obj::ptrless >
typedef std::allocator< std::pair< const obj *, std::unique_ptr< obj > > > allocator_type
 
typedef list_type::const_iterator const_iterator
 
typedef const value_type & const_reference
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 
typedef list_type::iterator iterator
 
typedef obj::ptrless key_compare
 
typedef obj * key_type
 
typedef std::unique_ptr< obj > mapped_type
 
typedef value_type & reference
 
typedef std::reverse_iterator< iterator > reverse_iterator
 
typedef map_type::size_type size_type
 
typedef std::pair< const obj *, std::unique_ptr< obj > > value_type
 
- Static Public Member Functions inherited from json::obj
static std::unique_ptr< objclone_ptr (const std::unique_ptr< obj > &a)
 

Member Function Documentation

◆ as_map() [1/2]

const map * json::map::as_map ( ) const
inlineoverridevirtual

Reimplemented from json::obj.

◆ as_map() [2/2]

map * json::map::as_map ( )
inlineoverridevirtual

Reimplemented from json::obj.

◆ clone()

std::unique_ptr< obj > json::map::clone ( ) const
inlineoverridevirtual

Implements json::obj.

◆ copy()

std::unique_ptr< obj > json::map::copy ( ) &&
inlineoverridevirtual

Implements json::obj.

◆ merge()

map & json::map::merge ( const map & a)

Merges the given map into this one and returns this map. For any key collisions, if both have a map, then they are merged recursively; if both have a vector, then the one in the given map is appended to the one in this map; otherwise, the entry in the given map replaces the entry in this one.

◆ operator<()

bool json::map::operator< ( const obj & a) const
inlineoverridevirtual

Implements json::obj.

◆ operator==()

bool json::map::operator== ( const obj & a) const
inlineoverridevirtual

Implements json::obj.

◆ print_on()

void json::map::print_on ( std::ostream & out,
int indent = 0,
int width = 80,
const char * pfx = "" ) const
overridevirtual

Implements json::obj.

◆ test_width()

bool json::map::test_width ( int & limit) const
inlineoverridevirtual

Implements json::obj.