diff options
Diffstat (limited to 'include/usrp_uhd')
| -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 | 
