From 92c76e574773e99d1bfb5c3a833217b8644779f4 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Fri, 15 Jan 2010 15:45:33 -0800 Subject: Dboard base class that is no longer also the xcvr. The xcvr base inherits from this (as does rx and tx base). Added m4 macro to check for compiler flags. The configure checks flags and headers. Merged the register subdev static methods into one method that associates a dboard id with a dboard constructor. The manager code is responsible for checking this association and creating the correct subdev instances. --- include/usrp_uhd/usrp/dboard/manager.hpp | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) (limited to 'include/usrp_uhd/usrp/dboard/manager.hpp') 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 #include #include -#include #include #include @@ -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 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 _rx_dboards; - std::vector _tx_dboards; + std::vector _rx_dboards; + std::vector _tx_dboards; }; }}} //namespace -- cgit v1.2.3