12 #include <boost/optional.hpp> 
   15 namespace uhd { 
namespace usrp { 
namespace cal {
 
   47     using sptr = std::shared_ptr<pwr_cal>;
 
   64     virtual void add_power_table(
const std::map<double, double>& gain_power_map,
 
   65         const double min_power,
 
   66         const double max_power,
 
   68         const boost::optional<int> temperature = boost::none) = 0;
 
   75     virtual void clear() = 0;
 
   85     virtual void set_temperature(
const int temperature) = 0;
 
   88     virtual int get_temperature() 
const = 0;
 
   95     virtual void set_ref_gain(
const double gain) = 0;
 
  101     virtual double get_ref_gain() 
const = 0;
 
  106         const boost::optional<int> temperature = boost::none) 
const = 0;
 
  119     virtual double get_power(
const double gain,
 
  121         const boost::optional<int> temperature = boost::none) 
const = 0;
 
  138     virtual double get_gain(
const double power_dbm,
 
  140         const boost::optional<int> temperature = boost::none) 
const = 0;
 
  144         const std::string& name, 
const std::string& serial, 
const uint64_t timestamp);