All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
dict.hpp
Go to the documentation of this file.
//
// Copyright 2010-2011 Ettus Research LLC
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
#ifndef INCLUDED_UHD_TYPES_DICT_HPP
#define INCLUDED_UHD_TYPES_DICT_HPP
#include <uhd/config.hpp>
#include <vector>
#include <list>
namespace uhd{
template <typename Key, typename Val> class dict{
public:
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);
Val pop(const Key &key);
private:
typedef std::pair<Key, Val> pair_t;
std::list<pair_t> _map; //private container
};
} //namespace uhd
#include <uhd/types/dict.ipp>
#endif /* INCLUDED_UHD_TYPES_DICT_HPP */