USRP Hardware Driver and USRP Manual  Version: 4.7.0.0
UHD and USRP Manual
uhd::dict< Key, Val > Class Template Reference

#include <uhd/types/dict.hpp>

Inheritance diagram for uhd::dict< Key, Val >:
uhd::usrp_clock::octoclock_eeprom_t

Public Member Functions

 dict (void)
 
template<typename InputIterator >
 dict (InputIterator first, InputIterator last)
 
std::size_t size (void) const
 
std::vector< Key > keys (void) const
 
std::vector< Val > vals (void) const
 
bool has_key (const Key &key) const
 
const Val & get (const Key &key, const Val &other) const
 
const Val & get (const Key &key) const
 
void set (const Key &key, const Val &val)
 
const Val & operator[] (const Key &key) const
 
Val & operator[] (const Key &key)
 
bool operator== (const dict< Key, Val > &other) const
 
bool operator!= (const dict< Key, Val > &other) const
 
Val pop (const Key &key)
 
void update (const dict< Key, Val > &new_dict, bool fail_on_conflict=true)
 
 operator std::map< Key, Val > () const
 

Detailed Description

template<typename Key, typename Val>
class uhd::dict< Key, Val >

A templated dictionary class with a python-like interface.

Constructor & Destructor Documentation

◆ dict() [1/2]

template<typename Key , typename Val >
uhd::dict< Key, Val >::dict ( void  )

Create a new empty dictionary.

◆ dict() [2/2]

template<typename Key , typename Val >
template<typename InputIterator >
uhd::dict< Key, Val >::dict ( InputIterator  first,
InputIterator  last 
)

Input iterator constructor: Makes boost::assign::map_list_of work.

Parameters
firstthe begin iterator
lastthe end iterator

Member Function Documentation

◆ get() [1/2]

template<typename Key, typename Val>
const Val & uhd::dict< Key, Val >::get ( const Key &  key,
const Val &  other 
) const

Get a value in the dict or default.

Parameters
keythe key to look for
otheruse if key not found
Returns
the value or default

◆ get() [2/2]

template<typename Key, typename Val>
const Val & uhd::dict< Key, Val >::get ( const Key &  key) const

Get a value in the dict or throw.

Parameters
keythe key to look for
Returns
the value or default

◆ has_key()

template<typename Key, typename Val >
bool uhd::dict< Key, Val >::has_key ( const Key &  key) const

Does the dictionary contain this key?

Parameters
keythe key to look for
Returns
true if found

◆ keys()

template<typename Key , typename Val >
std::vector< Key > uhd::dict< Key, Val >::keys ( void  ) const

Get a list of the keys in this dict. Key order depends on insertion precedence.

Returns
vector of keys

◆ operator std::map< Key, Val >()

template<typename Key , typename Val >
uhd::dict< Key, Val >::operator std::map< Key, Val > ( ) const

Typecast operator to std::map<>

◆ operator!=()

template<typename Key, typename Val>
bool uhd::dict< Key, Val >::operator!= ( const dict< Key, Val > &  other) const

Not equal operator for the dict type

Parameters
otherthe dict being compared to this
Returns
whether or not the two dict's are not equal

◆ operator==()

template<typename Key, typename Val>
bool uhd::dict< Key, Val >::operator== ( const dict< Key, Val > &  other) const

Equals operator for the dict type

Parameters
otherthe dict being compared to this
Returns
whether or not the two dict's are equal

◆ operator[]() [1/2]

template<typename Key, typename Val >
const Val & uhd::dict< Key, Val >::operator[] ( const Key &  key) const

Get a value for the given key if it exists. If the key is not found throw an error.

Parameters
keythe key to look for
Returns
the value at the key
Exceptions
anexception when not found

◆ operator[]() [2/2]

template<typename Key, typename Val >
Val & uhd::dict< Key, Val >::operator[] ( const Key &  key)

Set a value for the given key, however, in reality it really returns a reference which can be assigned to.

Parameters
keythe key to set to
Returns
a reference to the value

◆ pop()

template<typename Key, typename Val >
Val uhd::dict< Key, Val >::pop ( const Key &  key)

Pop an item out of the dictionary.

Parameters
keythe item key
Returns
the value of the item
Exceptions
anexception when not found

◆ set()

template<typename Key, typename Val>
void uhd::dict< Key, Val >::set ( const Key &  key,
const Val &  val 
)

Set a value in the dict at the key.

Parameters
keythe key to set at
valthe value to set

◆ size()

template<typename Key , typename Val >
std::size_t uhd::dict< Key, Val >::size ( void  ) const

Get the number of elements in this dict.

Returns
the number of elements

◆ update()

template<typename Key, typename Val>
void uhd::dict< Key, Val >::update ( const dict< Key, Val > &  new_dict,
bool  fail_on_conflict = true 
)

Update this dictionary with values from another.

Basically, this copies all the key/value pairs from new_dict into this dict. When the key is already present in the current dict, it either overwrites the current value (if fail_on_conflict is false) or it throws (if fail_on_conflict is true and the values differ).

With the exception of fail_on_conflict, this behaves analogously to Python's dict.update() method.

Parameters
new_dictThe arguments to copy.
fail_on_conflictIf true, throws.
Exceptions
uhd::value_error

◆ vals()

template<typename Key , typename Val >
std::vector< Val > uhd::dict< Key, Val >::vals ( void  ) const

Get a list of the values in this dict. Value order depends on insertion precedence.

Returns
vector of values

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