USRP Hardware Driver and USRP Manual  Version: 3.14.1.HEAD-0-g0347a6d8
UHD and USRP Manual
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
container.hpp
Go to the documentation of this file.
1 //
2 // Copyright 2016 Ettus Research
3 // Copyright 2018 Ettus Research, a National Instruments Company
4 //
5 // SPDX-License-Identifier: GPL-3.0-or-later
6 //
7 
8 #ifndef INCLUDED_UHD_CAL_CONTAINER_HPP
9 #define INCLUDED_UHD_CAL_CONTAINER_HPP
10 
11 #include <uhd/config.hpp>
12 #include <boost/archive/text_iarchive.hpp>
13 #include <boost/archive/text_oarchive.hpp>
14 #include <boost/serialization/map.hpp>
15 #include <boost/serialization/serialization.hpp>
16 #include <boost/serialization/string.hpp>
17 #include <boost/serialization/vector.hpp>
18 #include <boost/shared_ptr.hpp>
19 
20 namespace uhd { namespace cal {
21 
23 {
24 public:
25  typedef std::map<std::string, std::string> metadata_t;
26  typedef boost::shared_ptr<base_container> sptr;
27 };
28 
40 template <typename in_type, typename out_type>
42 {
43 public:
44  typedef std::map<in_type, out_type> container_t;
45 
55  virtual out_type get(const in_type& args) = 0;
56 
65  virtual void add(const out_type output, const in_type& args) = 0;
66 
72  virtual void add_metadata(const metadata_t& data) = 0;
73 
79  virtual const metadata_t& get_metadata() = 0;
80 
81 public:
82  typedef boost::archive::text_iarchive iarchive_type;
83  typedef boost::archive::text_oarchive oarchive_type;
84 
85 protected:
86  friend class boost::serialization::access;
87 
88  virtual void serialize(iarchive_type& ar, const unsigned int) = 0;
89  virtual void serialize(oarchive_type& ar, const unsigned int) = 0;
90 };
91 
92 }} // namespace uhd::cal
93 
94 #endif /* INCLUDED_UHD_CAL_CONTAINER_HPP */
boost::archive::text_oarchive oarchive_type
Definition: container.hpp:83
boost::shared_ptr< base_container > sptr
Definition: container.hpp:26
Definition: build_info.hpp:13
#define UHD_API
Definition: config.h:68
boost::archive::text_iarchive iarchive_type
Definition: container.hpp:82
Definition: container.hpp:41
Definition: container.hpp:22
std::map< std::string, std::string > metadata_t
Definition: container.hpp:25
std::map< in_type, out_type > container_t
Definition: container.hpp:44