diff options
author | Nicholas Corgan <nick.corgan@ettus.com> | 2014-08-13 08:44:31 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2014-09-01 17:58:24 +0200 |
commit | 654c5b06c086ce8b13a5be07e680004c96da8501 (patch) | |
tree | be8adaf06d3b1cebbd20e1b1856df61bfa06ce87 /host | |
parent | d88ae533c48495dbb86ca5fe2e7ddd05ab3c8a4e (diff) | |
download | uhd-654c5b06c086ce8b13a5be07e680004c96da8501.tar.gz uhd-654c5b06c086ce8b13a5be07e680004c96da8501.tar.bz2 uhd-654c5b06c086ce8b13a5be07e680004c96da8501.zip |
Added missing pure virtual destructors to base classes
Diffstat (limited to 'host')
85 files changed, 392 insertions, 81 deletions
diff --git a/host/include/uhd/convert.hpp b/host/include/uhd/convert.hpp index c6b005867..6ac93fb66 100644 --- a/host/include/uhd/convert.hpp +++ b/host/include/uhd/convert.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2012 Ettus Research LLC +// Copyright 2011-2012,2014 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 @@ -34,6 +34,8 @@ namespace uhd{ namespace convert{ typedef uhd::ref_vector<void *> output_type; typedef uhd::ref_vector<const void *> input_type; + virtual ~converter(void) = 0; + //! Set the scale factor (used in floating point conversions) virtual void set_scalar(const double) = 0; diff --git a/host/include/uhd/device.hpp b/host/include/uhd/device.hpp index 5b4a2fe07..1e88a4138 100644 --- a/host/include/uhd/device.hpp +++ b/host/include/uhd/device.hpp @@ -48,6 +48,7 @@ public: USRP, CLOCK }; + virtual ~device(void) = 0; /*! * Register a device into the discovery and factory system. diff --git a/host/include/uhd/property_tree.hpp b/host/include/uhd/property_tree.hpp index f889ba235..b4531698d 100644 --- a/host/include/uhd/property_tree.hpp +++ b/host/include/uhd/property_tree.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -36,6 +36,8 @@ public: typedef boost::function<T(void)> publisher_type; typedef boost::function<T(const T &)> coercer_type; + virtual ~property<T>(void) = 0; + /*! * Register a coercer into the property. * A coercer is a special subscriber that coerces the value. @@ -97,6 +99,11 @@ public: virtual bool empty(void) const = 0; }; +template <typename T> +property<T>::~property(void){ + /* NOP */ +} + /*! * FS Path: A glorified string with path manipulations. * Inspired by boost filesystem path, but without the dependency. @@ -121,6 +128,8 @@ class UHD_API property_tree : boost::noncopyable{ public: typedef boost::shared_ptr<property_tree> sptr; + virtual ~property_tree(void) = 0; + //! Create a new + empty property tree static sptr make(void); diff --git a/host/include/uhd/property_tree.ipp b/host/include/uhd/property_tree.ipp index 85720dc6b..93962c963 100644 --- a/host/include/uhd/property_tree.ipp +++ b/host/include/uhd/property_tree.ipp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -30,6 +30,10 @@ namespace uhd{ namespace /*anon*/{ template <typename T> class property_impl : public property<T>{ public: + ~property_impl<T>(void){ + /* NOP */ + } + property<T> &coerce(const typename property<T>::coercer_type &coercer){ _coercer = coercer; return *this; diff --git a/host/include/uhd/transport/buffer_pool.hpp b/host/include/uhd/transport/buffer_pool.hpp index 84a338097..cd2f7d1f5 100644 --- a/host/include/uhd/transport/buffer_pool.hpp +++ b/host/include/uhd/transport/buffer_pool.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -33,6 +33,8 @@ namespace uhd{ namespace transport{ typedef boost::shared_ptr<buffer_pool> sptr; typedef void * ptr_type; + virtual ~buffer_pool(void) = 0; + /*! * Make a new buffer pool. * \param num_buffs the number of buffers to allocate diff --git a/host/include/uhd/transport/tcp_zero_copy.hpp b/host/include/uhd/transport/tcp_zero_copy.hpp index a9878a396..52e94fab9 100644 --- a/host/include/uhd/transport/tcp_zero_copy.hpp +++ b/host/include/uhd/transport/tcp_zero_copy.hpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2013 Ettus Research LLC +// Copyright 2010-2014 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 @@ -32,6 +32,8 @@ namespace uhd{ namespace transport{ */ struct UHD_API tcp_zero_copy : public virtual zero_copy_if { + virtual ~tcp_zero_copy(void) = 0; + /*! * Make a new zero copy TCP transport: * This transport is for sending and receiving diff --git a/host/include/uhd/transport/udp_simple.hpp b/host/include/uhd/transport/udp_simple.hpp index ead3ad4b7..c159a95e3 100644 --- a/host/include/uhd/transport/udp_simple.hpp +++ b/host/include/uhd/transport/udp_simple.hpp @@ -1,5 +1,5 @@ // -// Copyright 2010 Ettus Research LLC +// Copyright 2010,2014 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 @@ -30,6 +30,8 @@ class UHD_API udp_simple : boost::noncopyable{ public: typedef boost::shared_ptr<udp_simple> sptr; + virtual ~udp_simple(void) = 0; + //! The maximum number of bytes per udp packet. static const size_t mtu = 1500 - 20 - 8; //default ipv4 mtu - ipv4 header - udp header diff --git a/host/include/uhd/transport/usb_control.hpp b/host/include/uhd/transport/usb_control.hpp index 92b10f339..624e537ef 100644 --- a/host/include/uhd/transport/usb_control.hpp +++ b/host/include/uhd/transport/usb_control.hpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2013 Ettus Research LLC +// Copyright 2010-2014 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 @@ -26,6 +26,8 @@ class UHD_API usb_control : boost::noncopyable { public: typedef boost::shared_ptr<usb_control> sptr; + virtual ~usb_control(void) = 0; + /*! * Create a new usb control transport: * This transport is for sending and receiving control information from diff --git a/host/include/uhd/usrp/gps_ctrl.hpp b/host/include/uhd/usrp/gps_ctrl.hpp index bbccac8bb..6fda04f21 100644 --- a/host/include/uhd/usrp/gps_ctrl.hpp +++ b/host/include/uhd/usrp/gps_ctrl.hpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2011 Ettus Research LLC +// Copyright 2010-2011,2014 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 @@ -31,6 +31,8 @@ class UHD_API gps_ctrl : boost::noncopyable{ public: typedef boost::shared_ptr<gps_ctrl> sptr; + virtual ~gps_ctrl(void) = 0; + /*! * Make a GPS config for internal GPSDOs or generic NMEA GPS devices */ diff --git a/host/include/uhd/usrp/multi_usrp.hpp b/host/include/uhd/usrp/multi_usrp.hpp index 883e4da3d..4c52b4506 100644 --- a/host/include/uhd/usrp/multi_usrp.hpp +++ b/host/include/uhd/usrp/multi_usrp.hpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2012 Ettus Research LLC +// Copyright 2010-2012,2014 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 @@ -95,6 +95,8 @@ class UHD_API multi_usrp : boost::noncopyable{ public: typedef boost::shared_ptr<multi_usrp> sptr; + virtual ~multi_usrp(void) = 0; + //! A wildcard motherboard index static const size_t ALL_MBOARDS = size_t(~0); diff --git a/host/include/uhd/utils/gain_group.hpp b/host/include/uhd/utils/gain_group.hpp index 7ef7bdcf5..56acce049 100644 --- a/host/include/uhd/utils/gain_group.hpp +++ b/host/include/uhd/utils/gain_group.hpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2011 Ettus Research LLC +// Copyright 2010-2011,2014 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 @@ -41,6 +41,8 @@ class UHD_API gain_group : boost::noncopyable{ public: typedef boost::shared_ptr<gain_group> sptr; + virtual ~gain_group(void) = 0; + /*! * Get the gain range for the gain element specified by name. * For an empty name, get the overall gain range for this group. diff --git a/host/include/uhd/utils/msg_task.hpp b/host/include/uhd/utils/msg_task.hpp index 21c47a240..d46fdd69e 100644 --- a/host/include/uhd/utils/msg_task.hpp +++ b/host/include/uhd/utils/msg_task.hpp @@ -51,6 +51,8 @@ namespace uhd{ return std::vector<boost::uint8_t>(); } + virtual ~msg_task(void) = 0; + /*! * Create a new task object with function callback. * The task function callback will be run in a loop. diff --git a/host/lib/convert/convert_impl.cpp b/host/lib/convert/convert_impl.cpp index caab3929e..329e94a4d 100644 --- a/host/lib/convert/convert_impl.cpp +++ b/host/lib/convert/convert_impl.cpp @@ -27,6 +27,10 @@ using namespace uhd; +convert::converter::~converter(void){ + /* NOP */ +} + bool convert::operator==(const convert::id_type &lhs, const convert::id_type &rhs){ return true and (lhs.input_format == rhs.input_format) diff --git a/host/lib/device.cpp b/host/lib/device.cpp index bd7bf5637..453781510 100644 --- a/host/lib/device.cpp +++ b/host/lib/device.cpp @@ -71,6 +71,10 @@ void device::register_device( get_dev_fcn_regs().push_back(dev_fcn_reg_t(find, make, filter)); } +device::~device(void){ + /* NOP */ +} + /*********************************************************************** * Discover **********************************************************************/ diff --git a/host/lib/property_tree.cpp b/host/lib/property_tree.cpp index 50e82a6ba..0f4cbc025 100644 --- a/host/lib/property_tree.cpp +++ b/host/lib/property_tree.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -173,6 +173,10 @@ private: const fs_path _root; }; +property_tree::~property_tree(void){ + /* NOP */ +} + /*********************************************************************** * Property tree factory **********************************************************************/ diff --git a/host/lib/transport/buffer_pool.cpp b/host/lib/transport/buffer_pool.cpp index 0fcebecb1..47e30ee44 100644 --- a/host/lib/transport/buffer_pool.cpp +++ b/host/lib/transport/buffer_pool.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -36,6 +36,10 @@ static size_t pad_to_boundary(const size_t bytes, const size_t alignment){ return bytes + (alignment - bytes)%alignment; } +buffer_pool::~buffer_pool(void){ + /* NOP */ +} + /*********************************************************************** * Buffer pool implementation **********************************************************************/ diff --git a/host/lib/transport/libusb1_base.cpp b/host/lib/transport/libusb1_base.cpp index 23117f128..ee4e20adb 100644 --- a/host/lib/transport/libusb1_base.cpp +++ b/host/lib/transport/libusb1_base.cpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2013 Ettus Research LLC +// Copyright 2010-2014 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 @@ -35,6 +35,10 @@ using namespace uhd::transport; /*********************************************************************** * libusb session **********************************************************************/ +libusb::session::~session(void) { + /* NOP */ +} + class libusb_session_impl : public libusb::session{ public: libusb_session_impl(void){ @@ -95,6 +99,10 @@ libusb::session::sptr libusb::session::get_global_session(void){ /*********************************************************************** * libusb device **********************************************************************/ +libusb::device::~device(void) { + /* NOP */ +} + class libusb_device_impl : public libusb::device{ public: libusb_device_impl(libusb_device *dev){ @@ -118,6 +126,10 @@ private: /*********************************************************************** * libusb device list **********************************************************************/ +libusb::device_list::~device_list(void){ + /* NOP */ +} + class libusb_device_list_impl : public libusb::device_list{ public: libusb_device_list_impl(void){ @@ -156,6 +168,10 @@ libusb::device_list::sptr libusb::device_list::make(void){ /*********************************************************************** * libusb device descriptor **********************************************************************/ +libusb::device_descriptor::~device_descriptor(void){ + /* NOP */ +} + class libusb_device_descriptor_impl : public libusb::device_descriptor{ public: libusb_device_descriptor_impl(libusb::device::sptr dev){ @@ -207,6 +223,10 @@ libusb::device_descriptor::sptr libusb::device_descriptor::make(device::sptr dev /*********************************************************************** * libusb device handle **********************************************************************/ +libusb::device_handle::~device_handle(void){ + /* NOP */ +} + class libusb_device_handle_impl : public libusb::device_handle{ public: libusb_device_handle_impl(libusb::device::sptr dev){ @@ -271,6 +291,10 @@ libusb::device_handle::sptr libusb::device_handle::get_cached_handle(device::spt /*********************************************************************** * libusb special handle **********************************************************************/ +libusb::special_handle::~special_handle(void){ + /* NOP */ +} + class libusb_special_handle_impl : public libusb::special_handle{ public: libusb_special_handle_impl(libusb::device::sptr dev){ diff --git a/host/lib/transport/libusb1_base.hpp b/host/lib/transport/libusb1_base.hpp index 7dab07fda..b00946614 100644 --- a/host/lib/transport/libusb1_base.hpp +++ b/host/lib/transport/libusb1_base.hpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2013 Ettus Research LLC +// Copyright 2010-2014 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 @@ -44,6 +44,8 @@ namespace libusb { public: typedef boost::shared_ptr<session> sptr; + virtual ~session(void) = 0; + /*! * Level 0: no messages ever printed by the library (default) * Level 1: error messages are printed to stderr @@ -67,6 +69,8 @@ namespace libusb { public: typedef boost::shared_ptr<device> sptr; + virtual ~device(void) = 0; + //! get the underlying device pointer virtual libusb_device *get(void) const = 0; }; @@ -79,6 +83,8 @@ namespace libusb { public: typedef boost::shared_ptr<device_list> sptr; + virtual ~device_list(void) = 0; + //! make a new device list static sptr make(void); @@ -96,6 +102,8 @@ namespace libusb { public: typedef boost::shared_ptr<device_descriptor> sptr; + virtual ~device_descriptor(void) = 0; + //! make a new descriptor from a device reference static sptr make(device::sptr); @@ -112,6 +120,8 @@ namespace libusb { public: typedef boost::shared_ptr<device_handle> sptr; + virtual ~device_handle(void) = 0; + //! get a cached handle or make a new one given the device static sptr get_cached_handle(device::sptr); @@ -135,6 +145,8 @@ namespace libusb { public: typedef boost::shared_ptr<special_handle> sptr; + virtual ~special_handle(void) = 0; + //! make a new special handle from device static sptr make(device::sptr); diff --git a/host/lib/transport/libusb1_control.cpp b/host/lib/transport/libusb1_control.cpp index c1b8fe6df..00c113163 100644 --- a/host/lib/transport/libusb1_control.cpp +++ b/host/lib/transport/libusb1_control.cpp @@ -1,5 +1,5 @@ // -// Copyright 2010 Ettus Research LLC +// Copyright 2010,2014 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 @@ -21,6 +21,10 @@ using namespace uhd::transport; +usb_control::~usb_control(void){ + /* NOP */ +} + /*********************************************************************** * libusb-1.0 implementation of USB control transport **********************************************************************/ diff --git a/host/lib/transport/tcp_zero_copy.cpp b/host/lib/transport/tcp_zero_copy.cpp index 402bda1e8..f2ae51695 100644 --- a/host/lib/transport/tcp_zero_copy.cpp +++ b/host/lib/transport/tcp_zero_copy.cpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2013 Ettus Research LLC +// Copyright 2010-2014 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 @@ -116,6 +116,10 @@ private: simple_claimer _claimer; }; +tcp_zero_copy::~tcp_zero_copy(void){ + /* NOP */ +} + /*********************************************************************** * Zero Copy TCP implementation with ASIO: * This is the portable zero copy implementation for systems diff --git a/host/lib/transport/udp_simple.cpp b/host/lib/transport/udp_simple.cpp index d6c55eae7..347373c71 100644 --- a/host/lib/transport/udp_simple.cpp +++ b/host/lib/transport/udp_simple.cpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2011 Ettus Research LLC +// Copyright 2010-2011,2014 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 @@ -72,6 +72,10 @@ private: asio::ip::udp::endpoint _recv_endpoint; }; +udp_simple::~udp_simple(void){ + /* NOP */ +} + /*********************************************************************** * UDP public make functions **********************************************************************/ diff --git a/host/lib/usrp/b100/clock_ctrl.cpp b/host/lib/usrp/b100/clock_ctrl.cpp index cbe6c40a0..febc8ba4b 100644 --- a/host/lib/usrp/b100/clock_ctrl.cpp +++ b/host/lib/usrp/b100/clock_ctrl.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -167,6 +167,10 @@ static clock_settings_type get_clock_settings(double rate){ ) % (rate/1e6))); } +b100_clock_ctrl::~b100_clock_ctrl(void) { + /* NOP */ +} + /*********************************************************************** * Clock Control Implementation **********************************************************************/ diff --git a/host/lib/usrp/b100/clock_ctrl.hpp b/host/lib/usrp/b100/clock_ctrl.hpp index 387892bf7..2ec4583d3 100644 --- a/host/lib/usrp/b100/clock_ctrl.hpp +++ b/host/lib/usrp/b100/clock_ctrl.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -24,14 +24,15 @@ #include <vector> /*! - * The usrp-e clock control: - * - Setup system clocks. + * The B100 clock control: * - Disable/enable clock lines. */ class b100_clock_ctrl : boost::noncopyable{ public: typedef boost::shared_ptr<b100_clock_ctrl> sptr; + virtual ~b100_clock_ctrl(void) = 0; + /*! * Make a new clock control object. * \param iface the controller iface object diff --git a/host/lib/usrp/b100/codec_ctrl.cpp b/host/lib/usrp/b100/codec_ctrl.cpp index 278713ce1..04fbebded 100644 --- a/host/lib/usrp/b100/codec_ctrl.cpp +++ b/host/lib/usrp/b100/codec_ctrl.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -33,6 +33,10 @@ using namespace uhd; const gain_range_t b100_codec_ctrl::tx_pga_gain_range(-20, 0, double(0.1)); const gain_range_t b100_codec_ctrl::rx_pga_gain_range(0, 20, 1); +b100_codec_ctrl::~b100_codec_ctrl(void){ + /* NOP */ +} + /*********************************************************************** * Codec Control Implementation **********************************************************************/ diff --git a/host/lib/usrp/b100/codec_ctrl.hpp b/host/lib/usrp/b100/codec_ctrl.hpp index 1f7bdef09..78e4ea827 100644 --- a/host/lib/usrp/b100/codec_ctrl.hpp +++ b/host/lib/usrp/b100/codec_ctrl.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -24,7 +24,7 @@ #include <boost/utility.hpp> /*! - * The usrp-e codec control: + * The B100 codec control: * - Init/power down codec. * - Read aux adc, write aux dac. */ @@ -35,6 +35,8 @@ public: static const uhd::gain_range_t tx_pga_gain_range; static const uhd::gain_range_t rx_pga_gain_range; + virtual ~b100_codec_ctrl(void) = 0; + /*! * Make a new codec control object. * \param iface the usrp_e iface object diff --git a/host/lib/usrp/common/ad9361_ctrl.cpp b/host/lib/usrp/common/ad9361_ctrl.cpp index dea18ff06..555eace85 100644 --- a/host/lib/usrp/common/ad9361_ctrl.cpp +++ b/host/lib/usrp/common/ad9361_ctrl.cpp @@ -1,5 +1,18 @@ // -// Copyright 2014 Ettus Research LLC +// Copyright 2012-2014 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/>. // #include "ad9361_ctrl.hpp" diff --git a/host/lib/usrp/common/ad9361_ctrl.hpp b/host/lib/usrp/common/ad9361_ctrl.hpp index f1659f30e..93d697349 100644 --- a/host/lib/usrp/common/ad9361_ctrl.hpp +++ b/host/lib/usrp/common/ad9361_ctrl.hpp @@ -1,5 +1,18 @@ // -// Copyright 2014 Ettus Research LLC +// Copyright 2012-2014 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_AD9361_CTRL_HPP @@ -22,6 +35,8 @@ class ad9361_ctrl : public boost::noncopyable public: typedef boost::shared_ptr<ad9361_ctrl> sptr; + virtual ~ad9361_ctrl(void) {}; + //! make a new codec control object static sptr make_spi( ad9361_params::sptr client_settings, uhd::spi_iface::sptr spi_iface, boost::uint32_t slave_num); diff --git a/host/lib/usrp/common/recv_packet_demuxer.cpp b/host/lib/usrp/common/recv_packet_demuxer.cpp index fe606213c..db0f71280 100644 --- a/host/lib/usrp/common/recv_packet_demuxer.cpp +++ b/host/lib/usrp/common/recv_packet_demuxer.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -47,6 +47,10 @@ static UHD_INLINE boost::uint32_t extract_sid(managed_recv_buffer::sptr &buff){ return uhd::wtohx(buff->cast<const boost::uint32_t *>()[1]); } +recv_packet_demuxer::~recv_packet_demuxer(void){ + /* NOP */ +} + class recv_packet_demuxer_impl : public uhd::usrp::recv_packet_demuxer{ public: recv_packet_demuxer_impl( diff --git a/host/lib/usrp/common/recv_packet_demuxer.hpp b/host/lib/usrp/common/recv_packet_demuxer.hpp index fde756d27..a03f25f47 100644 --- a/host/lib/usrp/common/recv_packet_demuxer.hpp +++ b/host/lib/usrp/common/recv_packet_demuxer.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -29,6 +29,8 @@ namespace uhd{ namespace usrp{ public: typedef boost::shared_ptr<recv_packet_demuxer> sptr; + virtual ~recv_packet_demuxer(void) = 0; + //! Make a new demuxer from a transport and parameters static sptr make(transport::zero_copy_if::sptr transport, const size_t size, const boost::uint32_t sid_base); diff --git a/host/lib/usrp/cores/gpio_core_200.cpp b/host/lib/usrp/cores/gpio_core_200.cpp index e55f1f51e..4f1c25a0b 100644 --- a/host/lib/usrp/cores/gpio_core_200.cpp +++ b/host/lib/usrp/cores/gpio_core_200.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -27,6 +27,10 @@ using namespace uhd; using namespace usrp; +gpio_core_200::~gpio_core_200(void){ + /* NOP */ +} + class gpio_core_200_impl : public gpio_core_200{ public: gpio_core_200_impl(wb_iface::sptr iface, const size_t base, const size_t rb_addr): @@ -105,6 +109,10 @@ gpio_core_200::sptr gpio_core_200::make(wb_iface::sptr iface, const size_t base, return sptr(new gpio_core_200_impl(iface, base, rb_addr)); } +gpio_core_200_32wo::~gpio_core_200_32wo(void){ + /* NOP */ +} + class gpio_core_200_32wo_impl : public gpio_core_200_32wo{ public: gpio_core_200_32wo_impl(wb_iface::sptr iface, const size_t base): diff --git a/host/lib/usrp/cores/gpio_core_200.hpp b/host/lib/usrp/cores/gpio_core_200.hpp index 15fe5f2dd..164437f40 100644 --- a/host/lib/usrp/cores/gpio_core_200.hpp +++ b/host/lib/usrp/cores/gpio_core_200.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -32,6 +32,8 @@ public: typedef uhd::usrp::dboard_iface::unit_t unit_t; typedef uhd::usrp::dboard_iface::atr_reg_t atr_reg_t; + virtual ~gpio_core_200(void) = 0; + //! makes a new GPIO core from iface and slave base static sptr make(uhd::wb_iface::sptr iface, const size_t base, const size_t rb_addr); @@ -56,6 +58,8 @@ public: typedef uhd::usrp::dboard_iface::atr_reg_t atr_reg_t; + virtual ~gpio_core_200_32wo(void) = 0; + static sptr make(uhd::wb_iface::sptr iface, const size_t); virtual void set_atr_reg(const atr_reg_t atr, const boost::uint32_t value) = 0; diff --git a/host/lib/usrp/cores/i2c_core_100.cpp b/host/lib/usrp/cores/i2c_core_100.cpp index 9e8a226f2..796447e0c 100644 --- a/host/lib/usrp/cores/i2c_core_100.cpp +++ b/host/lib/usrp/cores/i2c_core_100.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -53,6 +53,10 @@ using namespace uhd; +i2c_core_100::~i2c_core_100(void){ + /* NOP */ +} + class i2c_core_100_impl : public i2c_core_100{ public: i2c_core_100_impl(wb_iface::sptr iface, const size_t base): diff --git a/host/lib/usrp/cores/i2c_core_100.hpp b/host/lib/usrp/cores/i2c_core_100.hpp index 4e7a2874b..40079e79a 100644 --- a/host/lib/usrp/cores/i2c_core_100.hpp +++ b/host/lib/usrp/cores/i2c_core_100.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -28,6 +28,8 @@ class i2c_core_100 : boost::noncopyable, public uhd::i2c_iface{ public: typedef boost::shared_ptr<i2c_core_100> sptr; + virtual ~i2c_core_100(void) = 0; + //! makes a new i2c core from iface and slave base static sptr make(uhd::wb_iface::sptr iface, const size_t base); }; diff --git a/host/lib/usrp/cores/i2c_core_100_wb32.cpp b/host/lib/usrp/cores/i2c_core_100_wb32.cpp index df6e6ff72..a85cdea42 100644 --- a/host/lib/usrp/cores/i2c_core_100_wb32.cpp +++ b/host/lib/usrp/cores/i2c_core_100_wb32.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2013 Ettus Research LLC +// Copyright 2011-2014 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 @@ -53,6 +53,10 @@ using namespace uhd; +i2c_core_100_wb32::~i2c_core_100_wb32(void){ + /* NOP */ +} + class i2c_core_100_wb32_wb32_impl : public i2c_core_100_wb32{ public: i2c_core_100_wb32_wb32_impl(wb_iface::sptr iface, const size_t base): diff --git a/host/lib/usrp/cores/i2c_core_100_wb32.hpp b/host/lib/usrp/cores/i2c_core_100_wb32.hpp index b5912ba9a..04fe21c68 100644 --- a/host/lib/usrp/cores/i2c_core_100_wb32.hpp +++ b/host/lib/usrp/cores/i2c_core_100_wb32.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2013 Ettus Research LLC +// Copyright 2011-2014 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 @@ -28,6 +28,8 @@ class i2c_core_100_wb32 : boost::noncopyable, public uhd::i2c_iface{ public: typedef boost::shared_ptr<i2c_core_100_wb32> sptr; + virtual ~i2c_core_100_wb32(void) = 0; + //! makes a new i2c core from iface and slave base static sptr make(uhd::wb_iface::sptr iface, const size_t base); diff --git a/host/lib/usrp/cores/i2c_core_200.cpp b/host/lib/usrp/cores/i2c_core_200.cpp index 6010ac5a2..2f0f6f815 100644 --- a/host/lib/usrp/cores/i2c_core_200.cpp +++ b/host/lib/usrp/cores/i2c_core_200.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2012 Ettus Research LLC +// Copyright 2011-2012,2014 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 @@ -56,6 +56,10 @@ using namespace uhd; +i2c_core_200::~i2c_core_200(void){ + /* NOP */ +} + class i2c_core_200_impl : public i2c_core_200{ public: i2c_core_200_impl(wb_iface::sptr iface, const size_t base, const size_t readback): diff --git a/host/lib/usrp/cores/i2c_core_200.hpp b/host/lib/usrp/cores/i2c_core_200.hpp index 1b20455d3..6bb06efa6 100644 --- a/host/lib/usrp/cores/i2c_core_200.hpp +++ b/host/lib/usrp/cores/i2c_core_200.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2012 Ettus Research LLC +// Copyright 2011-2012,2014 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 @@ -28,6 +28,8 @@ class i2c_core_200 : boost::noncopyable, public uhd::i2c_iface{ public: typedef boost::shared_ptr<i2c_core_200> sptr; + virtual ~i2c_core_200(void) = 0; + //! makes a new i2c core from iface and slave base static sptr make(uhd::wb_iface::sptr iface, const size_t base, const size_t readback); }; diff --git a/host/lib/usrp/cores/radio_ctrl_core_3000.cpp b/host/lib/usrp/cores/radio_ctrl_core_3000.cpp index 2005bcf33..55e5cba7a 100644 --- a/host/lib/usrp/cores/radio_ctrl_core_3000.cpp +++ b/host/lib/usrp/cores/radio_ctrl_core_3000.cpp @@ -1,5 +1,5 @@ // -// Copyright 2012-2013 Ettus Research LLC +// Copyright 2012-2014 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 @@ -37,6 +37,10 @@ static const double ACK_TIMEOUT = 2.0; //supposed to be worst case practical tim static const double MASSIVE_TIMEOUT = 10.0; //for when we wait on a timed command static const size_t SR_READBACK = 32; +radio_ctrl_core_3000::~radio_ctrl_core_3000(void){ + /* NOP */ +} + class radio_ctrl_core_3000_impl: public radio_ctrl_core_3000 { public: diff --git a/host/lib/usrp/cores/radio_ctrl_core_3000.hpp b/host/lib/usrp/cores/radio_ctrl_core_3000.hpp index 51a307c10..1c25ceb2c 100644 --- a/host/lib/usrp/cores/radio_ctrl_core_3000.hpp +++ b/host/lib/usrp/cores/radio_ctrl_core_3000.hpp @@ -1,5 +1,5 @@ // -// Copyright 2012-2013 Ettus Research LLC +// Copyright 2012-2014 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 @@ -34,6 +34,8 @@ class radio_ctrl_core_3000 : public uhd::wb_iface public: typedef boost::shared_ptr<radio_ctrl_core_3000> sptr; + virtual ~radio_ctrl_core_3000(void) = 0; + //! Make a new control object static sptr make( const bool big_endian, diff --git a/host/lib/usrp/cores/rx_dsp_core_200.cpp b/host/lib/usrp/cores/rx_dsp_core_200.cpp index 2e5ca8e7a..2eafd6c59 100644 --- a/host/lib/usrp/cores/rx_dsp_core_200.cpp +++ b/host/lib/usrp/cores/rx_dsp_core_200.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2012 Ettus Research LLC +// Copyright 2011-2012,2014 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 @@ -52,6 +52,10 @@ template <class T> T ceil_log2(T num){ using namespace uhd; +rx_dsp_core_200::~rx_dsp_core_200(void){ + /* NOP */ +} + class rx_dsp_core_200_impl : public rx_dsp_core_200{ public: rx_dsp_core_200_impl( diff --git a/host/lib/usrp/cores/rx_dsp_core_200.hpp b/host/lib/usrp/cores/rx_dsp_core_200.hpp index 3937df9e8..1dc51fa24 100644 --- a/host/lib/usrp/cores/rx_dsp_core_200.hpp +++ b/host/lib/usrp/cores/rx_dsp_core_200.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -31,6 +31,8 @@ class rx_dsp_core_200 : boost::noncopyable{ public: typedef boost::shared_ptr<rx_dsp_core_200> sptr; + virtual ~rx_dsp_core_200(void) = 0; + static sptr make( uhd::wb_iface::sptr iface, const size_t dsp_base, const size_t ctrl_base, diff --git a/host/lib/usrp/cores/rx_dsp_core_3000.cpp b/host/lib/usrp/cores/rx_dsp_core_3000.cpp index 07399d462..fc7c58da8 100644 --- a/host/lib/usrp/cores/rx_dsp_core_3000.cpp +++ b/host/lib/usrp/cores/rx_dsp_core_3000.cpp @@ -46,6 +46,10 @@ template <class T> T ceil_log2(T num){ using namespace uhd; +rx_dsp_core_3000::~rx_dsp_core_3000(void){ + /* NOP */ +} + class rx_dsp_core_3000_impl : public rx_dsp_core_3000{ public: rx_dsp_core_3000_impl( diff --git a/host/lib/usrp/cores/rx_dsp_core_3000.hpp b/host/lib/usrp/cores/rx_dsp_core_3000.hpp index 8c6a2178d..89059e953 100644 --- a/host/lib/usrp/cores/rx_dsp_core_3000.hpp +++ b/host/lib/usrp/cores/rx_dsp_core_3000.hpp @@ -31,6 +31,8 @@ class rx_dsp_core_3000 : boost::noncopyable{ public: typedef boost::shared_ptr<rx_dsp_core_3000> sptr; + virtual ~rx_dsp_core_3000(void) = 0; + static sptr make( uhd::wb_iface::sptr iface, const size_t dsp_base, diff --git a/host/lib/usrp/cores/rx_frontend_core_200.cpp b/host/lib/usrp/cores/rx_frontend_core_200.cpp index 864b5cc53..b73896b57 100644 --- a/host/lib/usrp/cores/rx_frontend_core_200.cpp +++ b/host/lib/usrp/cores/rx_frontend_core_200.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2012 Ettus Research LLC +// Copyright 2011-2012,2014 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 @@ -34,6 +34,9 @@ static boost::uint32_t fs_to_bits(const double num, const size_t bits){ return boost::int32_t(boost::math::round(num * (1 << (bits-1)))); } +rx_frontend_core_200::~rx_frontend_core_200(void){ + /* NOP */ +} class rx_frontend_core_200_impl : public rx_frontend_core_200{ public: diff --git a/host/lib/usrp/cores/rx_frontend_core_200.hpp b/host/lib/usrp/cores/rx_frontend_core_200.hpp index 8327aef8b..9b18e2089 100644 --- a/host/lib/usrp/cores/rx_frontend_core_200.hpp +++ b/host/lib/usrp/cores/rx_frontend_core_200.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -29,6 +29,8 @@ class rx_frontend_core_200 : boost::noncopyable{ public: typedef boost::shared_ptr<rx_frontend_core_200> sptr; + virtual ~rx_frontend_core_200(void) = 0; + static sptr make(uhd::wb_iface::sptr iface, const size_t base); virtual void set_mux(const bool swap) = 0; diff --git a/host/lib/usrp/cores/rx_vita_core_3000.cpp b/host/lib/usrp/cores/rx_vita_core_3000.cpp index aad137ea3..f61da7cc3 100644 --- a/host/lib/usrp/cores/rx_vita_core_3000.cpp +++ b/host/lib/usrp/cores/rx_vita_core_3000.cpp @@ -1,5 +1,5 @@ // -// Copyright 2013 Ettus Research LLC +// Copyright 2013-2014 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 @@ -33,6 +33,10 @@ using namespace uhd; +rx_vita_core_3000::~rx_vita_core_3000(void){ + /* NOP */ +} + struct rx_vita_core_3000_impl : rx_vita_core_3000 { rx_vita_core_3000_impl( diff --git a/host/lib/usrp/cores/rx_vita_core_3000.hpp b/host/lib/usrp/cores/rx_vita_core_3000.hpp index 577510728..cd718a190 100644 --- a/host/lib/usrp/cores/rx_vita_core_3000.hpp +++ b/host/lib/usrp/cores/rx_vita_core_3000.hpp @@ -1,5 +1,5 @@ // -// Copyright 2013 Ettus Research LLC +// Copyright 2013,2014 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 @@ -32,6 +32,8 @@ class rx_vita_core_3000 : boost::noncopyable public: typedef boost::shared_ptr<rx_vita_core_3000> sptr; + virtual ~rx_vita_core_3000(void) = 0; + static sptr make( uhd::wb_iface::sptr iface, const size_t base diff --git a/host/lib/usrp/cores/spi_core_100.cpp b/host/lib/usrp/cores/spi_core_100.cpp index d11a499a9..71d92bcb6 100644 --- a/host/lib/usrp/cores/spi_core_100.cpp +++ b/host/lib/usrp/cores/spi_core_100.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -39,6 +39,10 @@ using namespace uhd; +spi_core_100::~spi_core_100(void){ + /* NOP */ +} + class spi_core_100_impl : public spi_core_100{ public: spi_core_100_impl(wb_iface::sptr iface, const size_t base): diff --git a/host/lib/usrp/cores/spi_core_100.hpp b/host/lib/usrp/cores/spi_core_100.hpp index ce53c0b86..63bf94a67 100644 --- a/host/lib/usrp/cores/spi_core_100.hpp +++ b/host/lib/usrp/cores/spi_core_100.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -28,6 +28,8 @@ class spi_core_100 : boost::noncopyable, public uhd::spi_iface{ public: typedef boost::shared_ptr<spi_core_100> sptr; + virtual ~spi_core_100(void) = 0; + //! makes a new spi core from iface and slave base static sptr make(uhd::wb_iface::sptr iface, const size_t base); }; diff --git a/host/lib/usrp/cores/spi_core_3000.cpp b/host/lib/usrp/cores/spi_core_3000.cpp index b7503064a..0656d910a 100644 --- a/host/lib/usrp/cores/spi_core_3000.cpp +++ b/host/lib/usrp/cores/spi_core_3000.cpp @@ -1,5 +1,5 @@ // -// Copyright 2013 Ettus Research LLC +// Copyright 2013-2014 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 @@ -26,6 +26,10 @@ using namespace uhd; +spi_core_3000::~spi_core_3000(void){ + /* NOP */ +} + class spi_core_3000_impl : public spi_core_3000 { public: diff --git a/host/lib/usrp/cores/spi_core_3000.hpp b/host/lib/usrp/cores/spi_core_3000.hpp index 923efed3d..6a439772e 100644 --- a/host/lib/usrp/cores/spi_core_3000.hpp +++ b/host/lib/usrp/cores/spi_core_3000.hpp @@ -1,5 +1,5 @@ // -// Copyright 2013 Ettus Research LLC +// Copyright 2013-2014 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 @@ -29,6 +29,8 @@ class spi_core_3000 : boost::noncopyable, public uhd::spi_iface public: typedef boost::shared_ptr<spi_core_3000> sptr; + virtual ~spi_core_3000(void) = 0; + //! makes a new spi core from iface and slave base static sptr make(uhd::wb_iface::sptr iface, const size_t base, const size_t readback); diff --git a/host/lib/usrp/cores/time64_core_200.cpp b/host/lib/usrp/cores/time64_core_200.cpp index ad5e6477c..54b60b6ad 100644 --- a/host/lib/usrp/cores/time64_core_200.cpp +++ b/host/lib/usrp/cores/time64_core_200.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -39,6 +39,10 @@ using namespace uhd; +time64_core_200::~time64_core_200(void){ + /* NOP */ +} + class time64_core_200_impl : public time64_core_200{ public: time64_core_200_impl( diff --git a/host/lib/usrp/cores/time64_core_200.hpp b/host/lib/usrp/cores/time64_core_200.hpp index e211ce040..7e30f0abc 100644 --- a/host/lib/usrp/cores/time64_core_200.hpp +++ b/host/lib/usrp/cores/time64_core_200.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2012 Ettus Research LLC +// Copyright 2011-2012,2014 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 @@ -35,6 +35,8 @@ public: size_t rb_hi_pps, rb_lo_pps; }; + virtual ~time64_core_200(void) = 0; + //! makes a new time64 core from iface and slave base static sptr make( uhd::wb_iface::sptr iface, const size_t base, diff --git a/host/lib/usrp/cores/time_core_3000.cpp b/host/lib/usrp/cores/time_core_3000.cpp index 45ff55271..aa5d5593d 100644 --- a/host/lib/usrp/cores/time_core_3000.cpp +++ b/host/lib/usrp/cores/time_core_3000.cpp @@ -1,5 +1,5 @@ // -// Copyright 2013 Ettus Research LLC +// Copyright 2013-2014 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 @@ -29,6 +29,10 @@ using namespace uhd; +time_core_3000::~time_core_3000(void){ + /* NOP */ +} + struct time_core_3000_impl : time_core_3000 { time_core_3000_impl( diff --git a/host/lib/usrp/cores/time_core_3000.hpp b/host/lib/usrp/cores/time_core_3000.hpp index fad408810..7463386ba 100644 --- a/host/lib/usrp/cores/time_core_3000.hpp +++ b/host/lib/usrp/cores/time_core_3000.hpp @@ -1,5 +1,5 @@ // -// Copyright 2013 Ettus Research LLC +// Copyright 2013-2014 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 @@ -35,6 +35,8 @@ public: size_t rb_pps; }; + virtual ~time_core_3000(void) = 0; + //! makes a new time core from iface and slave base static sptr make( uhd::wb_iface::sptr iface, const size_t base, diff --git a/host/lib/usrp/cores/tx_dsp_core_200.cpp b/host/lib/usrp/cores/tx_dsp_core_200.cpp index f8aa87aa3..0e83a698b 100644 --- a/host/lib/usrp/cores/tx_dsp_core_200.cpp +++ b/host/lib/usrp/cores/tx_dsp_core_200.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2012 Ettus Research LLC +// Copyright 2011-2012,2014 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 @@ -51,6 +51,10 @@ template <class T> T ceil_log2(T num){ using namespace uhd; +tx_dsp_core_200::~tx_dsp_core_200(void){ + /* NOP */ +} + class tx_dsp_core_200_impl : public tx_dsp_core_200{ public: tx_dsp_core_200_impl( diff --git a/host/lib/usrp/cores/tx_dsp_core_200.hpp b/host/lib/usrp/cores/tx_dsp_core_200.hpp index ce3d1dbdd..f0475c579 100644 --- a/host/lib/usrp/cores/tx_dsp_core_200.hpp +++ b/host/lib/usrp/cores/tx_dsp_core_200.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -29,6 +29,8 @@ class tx_dsp_core_200 : boost::noncopyable{ public: typedef boost::shared_ptr<tx_dsp_core_200> sptr; + virtual ~tx_dsp_core_200(void) = 0; + static sptr make( uhd::wb_iface::sptr iface, const size_t dsp_base, const size_t ctrl_base, diff --git a/host/lib/usrp/cores/tx_dsp_core_3000.cpp b/host/lib/usrp/cores/tx_dsp_core_3000.cpp index 93c8702bc..9c2b98ffb 100644 --- a/host/lib/usrp/cores/tx_dsp_core_3000.cpp +++ b/host/lib/usrp/cores/tx_dsp_core_3000.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2013 Ettus Research LLC +// Copyright 2011-2014 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 @@ -37,6 +37,10 @@ template <class T> T ceil_log2(T num){ using namespace uhd; +tx_dsp_core_3000::~tx_dsp_core_3000(void){ + /* NOP */ +} + class tx_dsp_core_3000_impl : public tx_dsp_core_3000{ public: tx_dsp_core_3000_impl( diff --git a/host/lib/usrp/cores/tx_dsp_core_3000.hpp b/host/lib/usrp/cores/tx_dsp_core_3000.hpp index 6f725b836..a51cb2803 100644 --- a/host/lib/usrp/cores/tx_dsp_core_3000.hpp +++ b/host/lib/usrp/cores/tx_dsp_core_3000.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2013 Ettus Research LLC +// Copyright 2011-2014 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 @@ -29,6 +29,8 @@ class tx_dsp_core_3000 : boost::noncopyable{ public: typedef boost::shared_ptr<tx_dsp_core_3000> sptr; + virtual ~tx_dsp_core_3000(void) = 0; + static sptr make( uhd::wb_iface::sptr iface, const size_t dsp_base diff --git a/host/lib/usrp/cores/tx_frontend_core_200.cpp b/host/lib/usrp/cores/tx_frontend_core_200.cpp index d701027e5..7000f46bd 100644 --- a/host/lib/usrp/cores/tx_frontend_core_200.cpp +++ b/host/lib/usrp/cores/tx_frontend_core_200.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -33,6 +33,9 @@ static boost::uint32_t fs_to_bits(const double num, const size_t bits){ return boost::int32_t(boost::math::round(num * (1 << (bits-1)))); } +tx_frontend_core_200::~tx_frontend_core_200(void){ + /* NOP */ +} class tx_frontend_core_200_impl : public tx_frontend_core_200{ public: diff --git a/host/lib/usrp/cores/tx_frontend_core_200.hpp b/host/lib/usrp/cores/tx_frontend_core_200.hpp index 7d09b39d2..0b89ea818 100644 --- a/host/lib/usrp/cores/tx_frontend_core_200.hpp +++ b/host/lib/usrp/cores/tx_frontend_core_200.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -29,6 +29,8 @@ class tx_frontend_core_200 : boost::noncopyable{ public: typedef boost::shared_ptr<tx_frontend_core_200> sptr; + virtual ~tx_frontend_core_200(void) = 0; + static sptr make(uhd::wb_iface::sptr iface, const size_t base); virtual void set_mux(const std::string &mode) = 0; diff --git a/host/lib/usrp/cores/tx_vita_core_3000.cpp b/host/lib/usrp/cores/tx_vita_core_3000.cpp index 38eb6afb5..71a2b7e21 100644 --- a/host/lib/usrp/cores/tx_vita_core_3000.cpp +++ b/host/lib/usrp/cores/tx_vita_core_3000.cpp @@ -1,5 +1,5 @@ // -// Copyright 2013 Ettus Research LLC +// Copyright 2013,2014 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 @@ -24,6 +24,10 @@ using namespace uhd; +tx_vita_core_3000::~tx_vita_core_3000(void){ + /* NOP */ +} + struct tx_vita_core_3000_impl : tx_vita_core_3000 { tx_vita_core_3000_impl( diff --git a/host/lib/usrp/cores/tx_vita_core_3000.hpp b/host/lib/usrp/cores/tx_vita_core_3000.hpp index d4677a3e3..4c0052d4f 100644 --- a/host/lib/usrp/cores/tx_vita_core_3000.hpp +++ b/host/lib/usrp/cores/tx_vita_core_3000.hpp @@ -1,5 +1,5 @@ // -// Copyright 2013 Ettus Research LLC +// Copyright 2013-2014 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 @@ -32,6 +32,8 @@ class tx_vita_core_3000 : boost::noncopyable public: typedef boost::shared_ptr<tx_vita_core_3000> sptr; + virtual ~tx_vita_core_3000(void) = 0; + static sptr make( uhd::wb_iface::sptr iface, const size_t base diff --git a/host/lib/usrp/cores/user_settings_core_200.cpp b/host/lib/usrp/cores/user_settings_core_200.cpp index 391725edc..99f7e00e1 100644 --- a/host/lib/usrp/cores/user_settings_core_200.cpp +++ b/host/lib/usrp/cores/user_settings_core_200.cpp @@ -1,5 +1,5 @@ // -// Copyright 2012 Ettus Research LLC +// Copyright 2012,2014 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 @@ -22,6 +22,10 @@ using namespace uhd; #define REG_USER_ADDR _base + 0 #define REG_USER_DATA _base + 4 +user_settings_core_200::~user_settings_core_200(void){ + /* NOP */ +} + class user_settings_core_200_impl : public user_settings_core_200{ public: user_settings_core_200_impl(wb_iface::sptr iface, const size_t base): diff --git a/host/lib/usrp/cores/user_settings_core_200.hpp b/host/lib/usrp/cores/user_settings_core_200.hpp index f5fca2ce6..a8efeed38 100644 --- a/host/lib/usrp/cores/user_settings_core_200.hpp +++ b/host/lib/usrp/cores/user_settings_core_200.hpp @@ -1,5 +1,5 @@ // -// Copyright 2012 Ettus Research LLC +// Copyright 2012,2014 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 @@ -28,6 +28,8 @@ public: typedef boost::shared_ptr<user_settings_core_200> sptr; typedef std::pair<boost::uint8_t, boost::uint32_t> user_reg_t; + virtual ~user_settings_core_200(void) = 0; + static sptr make(uhd::wb_iface::sptr iface, const size_t base); virtual void set_reg(const user_reg_t ®) = 0; diff --git a/host/lib/usrp/dboard/db_sbx_common.hpp b/host/lib/usrp/dboard/db_sbx_common.hpp index a4bbfde38..58f79a606 100644 --- a/host/lib/usrp/dboard/db_sbx_common.hpp +++ b/host/lib/usrp/dboard/db_sbx_common.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2013 Ettus Research LLC +// Copyright 2011-2014 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 @@ -126,7 +126,7 @@ static const uhd::dict<std::string, gain_range_t> sbx_rx_gain_ranges = map_list_ class sbx_xcvr : public xcvr_dboard_base{ public: sbx_xcvr(ctor_args_t args); - ~sbx_xcvr(void); + virtual ~sbx_xcvr(void); protected: @@ -172,7 +172,7 @@ protected: class sbx_versionx { public: sbx_versionx() {} - ~sbx_versionx(void) {} + virtual ~sbx_versionx(void) {} virtual double set_lo_freq(dboard_iface::unit_t unit, double target_freq) = 0; }; diff --git a/host/lib/usrp/dboard/db_wbx_common.hpp b/host/lib/usrp/dboard/db_wbx_common.hpp index 7609beb19..6a4224048 100644 --- a/host/lib/usrp/dboard/db_wbx_common.hpp +++ b/host/lib/usrp/dboard/db_wbx_common.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011,2013 Ettus Research LLC +// Copyright 2011,2013-2014 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 @@ -126,7 +126,7 @@ protected: class wbx_versionx { public: wbx_versionx():self_base(NULL) {} - ~wbx_versionx(void) {} + virtual ~wbx_versionx(void) {} virtual double set_tx_gain(double gain, const std::string &name) = 0; virtual void set_tx_enabled(bool enb) = 0; diff --git a/host/lib/usrp/gps_ctrl.cpp b/host/lib/usrp/gps_ctrl.cpp index f4d5cd8e8..b9d5128bb 100644 --- a/host/lib/usrp/gps_ctrl.cpp +++ b/host/lib/usrp/gps_ctrl.cpp @@ -42,6 +42,10 @@ using namespace boost::this_thread; * A control for GPSDO devices */ +gps_ctrl::~gps_ctrl(void){ + /* NOP */ +} + class gps_ctrl_impl : public gps_ctrl{ private: std::map<std::string, boost::tuple<std::string, boost::system_time, bool> > sensors; diff --git a/host/lib/usrp/multi_usrp.cpp b/host/lib/usrp/multi_usrp.cpp index 388cf03fa..80f61935c 100644 --- a/host/lib/usrp/multi_usrp.cpp +++ b/host/lib/usrp/multi_usrp.cpp @@ -1243,6 +1243,10 @@ private: } }; +multi_usrp::~multi_usrp(void){ + /* NOP */ +} + /*********************************************************************** * The Make Function **********************************************************************/ diff --git a/host/lib/usrp/usrp1/codec_ctrl.cpp b/host/lib/usrp/usrp1/codec_ctrl.cpp index 7383c9833..2e922a3e2 100644 --- a/host/lib/usrp/usrp1/codec_ctrl.cpp +++ b/host/lib/usrp/usrp1/codec_ctrl.cpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2012 Ettus Research LLC +// Copyright 2010-2012,2014 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 @@ -36,6 +36,10 @@ using namespace uhd; const gain_range_t usrp1_codec_ctrl::tx_pga_gain_range(-20, 0, double(0.1)); const gain_range_t usrp1_codec_ctrl::rx_pga_gain_range(0, 20, 1); +usrp1_codec_ctrl::~usrp1_codec_ctrl(void){ + /* NOP */ +} + /*********************************************************************** * Codec Control Implementation **********************************************************************/ diff --git a/host/lib/usrp/usrp1/codec_ctrl.hpp b/host/lib/usrp/usrp1/codec_ctrl.hpp index 70f4e0b61..ea9c8eb04 100644 --- a/host/lib/usrp/usrp1/codec_ctrl.hpp +++ b/host/lib/usrp/usrp1/codec_ctrl.hpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2011 Ettus Research LLC +// Copyright 2010-2011,2014 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 @@ -35,6 +35,8 @@ public: static const uhd::gain_range_t tx_pga_gain_range; static const uhd::gain_range_t rx_pga_gain_range; + virtual ~usrp1_codec_ctrl(void) = 0; + /*! * Make a new clock control object. * \param iface the spi iface object diff --git a/host/lib/usrp/usrp1/soft_time_ctrl.cpp b/host/lib/usrp/usrp1/soft_time_ctrl.cpp index 65bdc36d4..bb8b3a704 100644 --- a/host/lib/usrp/usrp1/soft_time_ctrl.cpp +++ b/host/lib/usrp/usrp1/soft_time_ctrl.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2012 Ettus Research LLC +// Copyright 2011-2012,2014 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 @@ -29,6 +29,10 @@ namespace pt = boost::posix_time; static const time_spec_t TWIDDLE(0.0011); +soft_time_ctrl::~soft_time_ctrl(void){ + /* NOP */ +} + /*********************************************************************** * Soft time control implementation **********************************************************************/ diff --git a/host/lib/usrp/usrp1/soft_time_ctrl.hpp b/host/lib/usrp/usrp1/soft_time_ctrl.hpp index f418ec35a..60df24744 100644 --- a/host/lib/usrp/usrp1/soft_time_ctrl.hpp +++ b/host/lib/usrp/usrp1/soft_time_ctrl.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2012 Ettus Research LLC +// Copyright 2011-2012,2014 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 @@ -40,6 +40,8 @@ public: typedef boost::shared_ptr<soft_time_ctrl> sptr; typedef boost::function<void(bool)> cb_fcn_type; + virtual ~soft_time_ctrl(void) = 0; + /*! * Make a new soft time control. * \param stream_on_off a function to enable/disable rx diff --git a/host/lib/usrp/usrp2/clock_ctrl.cpp b/host/lib/usrp/usrp2/clock_ctrl.cpp index 0ae3b0bd8..ecb5a7101 100644 --- a/host/lib/usrp/usrp2/clock_ctrl.cpp +++ b/host/lib/usrp/usrp2/clock_ctrl.cpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2012 Ettus Research LLC +// Copyright 2010-2012,2014 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 @@ -30,6 +30,10 @@ using namespace uhd; static const bool enb_test_clk = false; +usrp2_clock_ctrl::~usrp2_clock_ctrl(void){ + /* NOP */ +} + /*! * A usrp2 clock control specific to the ad9510 ic. */ diff --git a/host/lib/usrp/usrp2/clock_ctrl.hpp b/host/lib/usrp/usrp2/clock_ctrl.hpp index 067e1e35d..80dcd0a2d 100644 --- a/host/lib/usrp/usrp2/clock_ctrl.hpp +++ b/host/lib/usrp/usrp2/clock_ctrl.hpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2012 Ettus Research LLC +// Copyright 2010-2012,2014 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 @@ -27,6 +27,8 @@ class usrp2_clock_ctrl : boost::noncopyable{ public: typedef boost::shared_ptr<usrp2_clock_ctrl> sptr; + virtual ~usrp2_clock_ctrl(void) = 0; + /*! * Make a clock config for the ad9510 ic. * \param iface a pointer to the usrp2 interface object diff --git a/host/lib/usrp/usrp2/codec_ctrl.cpp b/host/lib/usrp/usrp2/codec_ctrl.cpp index b53c4d9df..a565078cf 100644 --- a/host/lib/usrp/usrp2/codec_ctrl.cpp +++ b/host/lib/usrp/usrp2/codec_ctrl.cpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2012 Ettus Research LLC +// Copyright 2010-2012,2014 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 @@ -27,6 +27,10 @@ using namespace uhd; +usrp2_codec_ctrl::~usrp2_codec_ctrl(void){ + /* NOP */ +} + /*! * A usrp2 codec control specific to the ad9777 ic. */ diff --git a/host/lib/usrp/usrp2/codec_ctrl.hpp b/host/lib/usrp/usrp2/codec_ctrl.hpp index b0d815be2..ddecc6026 100644 --- a/host/lib/usrp/usrp2/codec_ctrl.hpp +++ b/host/lib/usrp/usrp2/codec_ctrl.hpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2012 Ettus Research LLC +// Copyright 2010-2012,2014 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 @@ -26,6 +26,8 @@ class usrp2_codec_ctrl : boost::noncopyable{ public: typedef boost::shared_ptr<usrp2_codec_ctrl> sptr; + virtual ~usrp2_codec_ctrl(void) = 0; + /*! * Make a codec control for the DAC and ADC. * \param iface a pointer to the usrp2 interface object diff --git a/host/lib/usrp/x300/x300_adc_ctrl.cpp b/host/lib/usrp/x300/x300_adc_ctrl.cpp index 75bfb048c..53d1662ae 100644 --- a/host/lib/usrp/x300/x300_adc_ctrl.cpp +++ b/host/lib/usrp/x300/x300_adc_ctrl.cpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2013 Ettus Research LLC +// Copyright 2010-2014 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 @@ -25,6 +25,10 @@ using namespace uhd; +x300_adc_ctrl::~x300_adc_ctrl(void){ + /* NOP */ +} + /*! * A X300 codec control specific to the ads62p48 ic. */ diff --git a/host/lib/usrp/x300/x300_adc_ctrl.hpp b/host/lib/usrp/x300/x300_adc_ctrl.hpp index fce40a434..c8ce19c94 100644 --- a/host/lib/usrp/x300/x300_adc_ctrl.hpp +++ b/host/lib/usrp/x300/x300_adc_ctrl.hpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2013 Ettus Research LLC +// Copyright 2010-2014 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 @@ -27,6 +27,8 @@ class x300_adc_ctrl : boost::noncopyable public: typedef boost::shared_ptr<x300_adc_ctrl> sptr; + virtual ~x300_adc_ctrl(void) = 0; + /*! * Make a codec control for the ADC. * \param iface a pointer to the interface object diff --git a/host/lib/usrp/x300/x300_clock_ctrl.cpp b/host/lib/usrp/x300/x300_clock_ctrl.cpp index da97dd2cf..d30c31127 100644 --- a/host/lib/usrp/x300/x300_clock_ctrl.cpp +++ b/host/lib/usrp/x300/x300_clock_ctrl.cpp @@ -28,6 +28,10 @@ static const double X300_REF_CLK_OUT_RATE = 10e6; using namespace uhd; +x300_clock_ctrl::~x300_clock_ctrl(void){ + /* NOP */ +} + class x300_clock_ctrl_impl : public x300_clock_ctrl { public: diff --git a/host/lib/usrp/x300/x300_clock_ctrl.hpp b/host/lib/usrp/x300/x300_clock_ctrl.hpp index e9904d25c..40b62b09a 100644 --- a/host/lib/usrp/x300/x300_clock_ctrl.hpp +++ b/host/lib/usrp/x300/x300_clock_ctrl.hpp @@ -42,6 +42,8 @@ public: typedef boost::shared_ptr<x300_clock_ctrl> sptr; + virtual ~x300_clock_ctrl(void) = 0; + static sptr make(uhd::spi_iface::sptr spiface, const size_t slaveno, const size_t hw_rev, diff --git a/host/lib/usrp/x300/x300_dac_ctrl.cpp b/host/lib/usrp/x300/x300_dac_ctrl.cpp index 5eae9cc48..a9d9a7730 100644 --- a/host/lib/usrp/x300/x300_dac_ctrl.cpp +++ b/host/lib/usrp/x300/x300_dac_ctrl.cpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2013 Ettus Research LLC +// Copyright 2010-2014 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 @@ -32,6 +32,10 @@ using namespace uhd; #define read_ad9146_reg(addr) \ (_iface->read_spi(_slaveno, spi_config_t::EDGE_RISE, ((addr) << 8) | (1 << 15), 16) & 0xff) +x300_dac_ctrl::~x300_dac_ctrl(void){ + /* NOP */ +} + /*! * A X300 codec control specific to the ad9146 ic. */ diff --git a/host/lib/usrp/x300/x300_dac_ctrl.hpp b/host/lib/usrp/x300/x300_dac_ctrl.hpp index 0db7e1e35..78046cee5 100644 --- a/host/lib/usrp/x300/x300_dac_ctrl.hpp +++ b/host/lib/usrp/x300/x300_dac_ctrl.hpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2013 Ettus Research LLC +// Copyright 2010-2014 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 @@ -27,6 +27,8 @@ class x300_dac_ctrl : boost::noncopyable public: typedef boost::shared_ptr<x300_dac_ctrl> sptr; + virtual ~x300_dac_ctrl(void) = 0; + /*! * Make a codec control for the DAC. * \param iface a pointer to the interface object diff --git a/host/lib/utils/gain_group.cpp b/host/lib/utils/gain_group.cpp index d422b3d52..e907a6573 100644 --- a/host/lib/utils/gain_group.cpp +++ b/host/lib/utils/gain_group.cpp @@ -1,5 +1,5 @@ // -// Copyright 2010-2011 Ettus Research LLC +// Copyright 2010-2011,2014 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 @@ -54,6 +54,10 @@ template <typename T> static T floor_step(T num, T step, T e = T(0.001)){ return step*int(num/step + e); } +gain_group::~gain_group(void){ + /* NOP */ +} + /*********************************************************************** * gain group implementation **********************************************************************/ diff --git a/host/lib/utils/tasks.cpp b/host/lib/utils/tasks.cpp index 08c32a5fb..6dbca5fc9 100644 --- a/host/lib/utils/tasks.cpp +++ b/host/lib/utils/tasks.cpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011,2014 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 @@ -83,6 +83,10 @@ task::sptr task::make(const task_fcn_type &task_fcn){ return task::sptr(new task_impl(task_fcn)); } +msg_task::~msg_task(void){ + /* NOP */ +} + /* * During shutdown pointers to queues for radio_ctrl_core might not be available anymore. * msg_task_impl provides a dump_queue for such messages. |