UHD 003.004.003-0-unknown

- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
dict.hpp
Go to the documentation of this file.
1 //
2 // Copyright 2010-2011 Ettus Research LLC
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 //
17
18 #ifndef INCLUDED_UHD_TYPES_DICT_HPP
19 #define INCLUDED_UHD_TYPES_DICT_HPP
20
21 #include <uhd/config.hpp>
22 #include <vector>
23 #include <list>
24
25 namespace uhd{
26
30 template <typename Key, typename Val> class dict{
31 public:
35 dict(void);
36
43 template <typename InputIterator>
44 dict(InputIterator first, InputIterator last);
45
50 std::size_t size(void) const;
51
57 std::vector<Key> keys(void) const;
58
64 std::vector<Val> vals(void) const;
65
71 bool has_key(const Key &key) const;
72
79 const Val &get(const Key &key, const Val &other) const;
80
86 const Val &get(const Key &key) const;
87
93 void set(const Key &key, const Val &val);
94
102 const Val &operator[](const Key &key) const;
103
110 Val &operator[](const Key &key);
111
118 Val pop(const Key &key);
119
120 private:
121 typedef std::pair<Key, Val> pair_t;
122 std::list<pair_t> _map; //private container
123 };
124
125 } //namespace uhd
126
127 #include <uhd/types/dict.ipp>
128
129 #endif /* INCLUDED_UHD_TYPES_DICT_HPP */