USRP Hardware Driver and USRP Manual  Version: 4.4.0.HEAD-0-g5fac246b
UHD and USRP Manual
dirty_tracked.hpp
Go to the documentation of this file.
1 //
2 // Copyright 2010-2015 Ettus Research LLC
3 // Copyright 2018 Ettus Research, a National Instruments Company
4 //
5 // SPDX-License-Identifier: GPL-3.0-or-later
6 //
7 
8 #pragma once
9 
10 namespace uhd {
23 template <typename data_t>
25 {
26 public:
31  : _data()
32  , // data_t must have a default ctor
33  _dirty(true)
34  {
35  }
36 
40  dirty_tracked(const data_t& value)
41  : _data(value)
42  , // data_t must have a copy ctor
43  _dirty(true)
44  {
45  }
46 
47  dirty_tracked(const uhd::dirty_tracked<data_t>&) = default;
48 
52  inline const data_t& get() const
53  {
54  return _data;
55  }
56 
61  inline bool is_dirty() const
62  {
63  return _dirty;
64  }
65 
69  inline void mark_clean()
70  {
71  _dirty = false;
72  }
73 
77  inline void force_dirty()
78  {
79  _dirty = true;
80  }
81 
87  inline dirty_tracked& operator=(const data_t& value)
88  {
89  if (!(_data == value)) { // data_t must have an equality operator
90  _dirty = true;
91  _data = value; // data_t must have an assignment operator
92  }
93  return *this;
94  }
95 
104  {
105  if (!(_data == source._data)) {
106  _dirty = true;
107  _data = source._data;
108  }
109  return *this;
110  }
111 
115  inline operator const data_t&() const
116  {
117  return get();
118  }
119 
120 private:
121  data_t _data;
122  bool _dirty;
123 };
124 
125 } // namespace uhd
uhd::dirty_tracked::get
const data_t & get() const
Definition: dirty_tracked.hpp:52
uhd::dirty_tracked::operator=
dirty_tracked & operator=(const dirty_tracked &source)
Definition: dirty_tracked.hpp:103
uhd::dirty_tracked::force_dirty
void force_dirty()
Definition: dirty_tracked.hpp:77
uhd::usrp::cal::source
source
Identify the source of calibration data, i.e., where was it stored.
Definition: database.hpp:23
uhd::dirty_tracked
Definition: dirty_tracked.hpp:24
uhd::dirty_tracked::is_dirty
bool is_dirty() const
Definition: dirty_tracked.hpp:61
uhd
Definition: build_info.hpp:12
uhd::dirty_tracked::dirty_tracked
dirty_tracked(const data_t &value)
Definition: dirty_tracked.hpp:40
uhd::dirty_tracked::mark_clean
void mark_clean()
Definition: dirty_tracked.hpp:69
uhd::dirty_tracked::dirty_tracked
dirty_tracked()
Definition: dirty_tracked.hpp:30
uhd::dirty_tracked::operator=
dirty_tracked & operator=(const data_t &value)
Definition: dirty_tracked.hpp:87