diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/usrp_uhd/usrp/dboard/base.hpp | 27 | ||||
-rw-r--r-- | include/usrp_uhd/usrp/dboard/manager.hpp | 28 |
2 files changed, 27 insertions, 28 deletions
diff --git a/include/usrp_uhd/usrp/dboard/base.hpp b/include/usrp_uhd/usrp/dboard/base.hpp index 09cc9b324..82895ed59 100644 --- a/include/usrp_uhd/usrp/dboard/base.hpp +++ b/include/usrp_uhd/usrp/dboard/base.hpp @@ -15,19 +15,19 @@ namespace usrp_uhd{ namespace usrp{ namespace dboard{ /*! * A daughter board base class for all dboards. - * Sub classes for xcvr boards should inherit this. + * Only other dboard base classes should inherit this. */ -class xcvr_base : boost::noncopyable{ +class base : boost::noncopyable{ public: - typedef boost::shared_ptr<xcvr_base> sptr; + typedef boost::shared_ptr<base> sptr; //the constructor args consist of a subdev index and an interface //derived classes should pass the args into the base class ctor //but should not have to deal with the internals of the args typedef boost::tuple<size_t, interface::sptr> ctor_args_t; //structors - xcvr_base(ctor_args_t const&); - ~xcvr_base(void); + base(ctor_args_t const&); + ~base(void); //interface virtual void rx_get(const wax::type &key, wax::type &val) = 0; @@ -45,10 +45,23 @@ private: }; /*! + * A xcvr daughter board implements rx and tx methods + * Sub classes for xcvr boards should inherit this. + */ +class xcvr_base : public base{ +public: + /*! + * Create a new xcvr dboard object, override in subclasses. + */ + xcvr_base(ctor_args_t const&); + ~xcvr_base(void); +}; + +/*! * A rx daughter board only implements rx methods. * Sub classes for rx-only boards should inherit this. */ -class rx_base : public xcvr_base{ +class rx_base : public base{ public: /*! * Create a new rx dboard object, override in subclasses. @@ -66,7 +79,7 @@ public: * A tx daughter board only implements tx methods. * Sub classes for rx-only boards should inherit this. */ -class tx_base : public xcvr_base{ +class tx_base : public base{ public: /*! * Create a new rx dboard object, override in subclasses. diff --git a/include/usrp_uhd/usrp/dboard/manager.hpp b/include/usrp_uhd/usrp/dboard/manager.hpp index 788b8a6eb..d977fa527 100644 --- a/include/usrp_uhd/usrp/dboard/manager.hpp +++ b/include/usrp_uhd/usrp/dboard/manager.hpp @@ -8,7 +8,6 @@ #include <vector> #include <usrp_uhd/wax.hpp> #include <boost/utility.hpp> -#include <boost/function.hpp> #include <boost/shared_ptr.hpp> #include <usrp_uhd/usrp/dboard/base.hpp> @@ -26,29 +25,16 @@ public: typedef uint16_t dboard_id_t; //dboard constructor (each dboard should have a ::make with this signature) - typedef boost::function<xcvr_base::sptr(xcvr_base::ctor_args_t)> dboard_ctor_t; + typedef base::sptr(*dboard_ctor_t)(base::ctor_args_t const&); /*! - * Register rx subdevices for a given dboard id. + * Register subdevices for a given dboard id. * - * \param dboard_id the rx dboard id + * \param dboard_id the dboard id (rx or tx) * \param dboard_ctor the dboard constructor function pointer - * \param num_subdevs the number of rx subdevs in this dboard + * \param num_subdevs the number of subdevs in this dboard */ - static void register_rx_subdev( - dboard_id_t dboard_id, - dboard_ctor_t dboard_ctor, - size_t num_subdevs - ); - - /*! - * Register tx subdevices for a given dboard id. - * - * \param dboard_id the tx dboard id - * \param dboard_ctor the dboard constructor function pointer - * \param num_subdevs the number of tx subdevs in this dboard - */ - static void register_tx_subdev( + static void register_subdevs( dboard_id_t dboard_id, dboard_ctor_t dboard_ctor, size_t num_subdevs @@ -73,8 +59,8 @@ public: private: //list of rx and tx dboards in this manager //each dboard here is actually a subdevice - std::vector<xcvr_base::sptr> _rx_dboards; - std::vector<xcvr_base::sptr> _tx_dboards; + std::vector<base::sptr> _rx_dboards; + std::vector<base::sptr> _tx_dboards; }; }}} //namespace |