diff options
| author | Josh Blum <josh@joshknows.com> | 2010-07-22 10:26:48 -0700 | 
|---|---|---|
| committer | Josh Blum <josh@joshknows.com> | 2010-07-22 10:26:48 -0700 | 
| commit | f1fe66acd4fd32fe0f99548f11e8f4ab28b4c9f1 (patch) | |
| tree | 9dff5e16ea44c76baefeeab5c8d5a7c26566e67e | |
| parent | 02be26f6b89869cb7f3ced716cf5447b913d58d5 (diff) | |
| download | uhd-f1fe66acd4fd32fe0f99548f11e8f4ab28b4c9f1.tar.gz uhd-f1fe66acd4fd32fe0f99548f11e8f4ab28b4c9f1.tar.bz2 uhd-f1fe66acd4fd32fe0f99548f11e8f4ab28b4c9f1.zip  | |
usrp: changed opaque pointer implementation for dboard contructor args
| -rw-r--r-- | host/include/uhd/usrp/dboard_base.hpp | 2 | ||||
| -rw-r--r-- | host/include/uhd/utils/pimpl.hpp | 3 | ||||
| -rw-r--r-- | host/lib/usrp/dboard_base.cpp | 6 | ||||
| -rw-r--r-- | host/lib/usrp/dboard_ctor_args.hpp | 20 | ||||
| -rw-r--r-- | host/lib/usrp/dboard_manager.cpp | 2 | 
5 files changed, 19 insertions, 14 deletions
diff --git a/host/include/uhd/usrp/dboard_base.hpp b/host/include/uhd/usrp/dboard_base.hpp index e88d39876..9b75d791f 100644 --- a/host/include/uhd/usrp/dboard_base.hpp +++ b/host/include/uhd/usrp/dboard_base.hpp @@ -40,7 +40,7 @@ public:       * Derived classes should pass the args into the base class,       * but should not deal with the internals of the args.       */ -    struct ctor_args_impl; typedef ctor_args_impl* ctor_args_t; +    typedef void * ctor_args_t;      //structors      dboard_base(ctor_args_t); diff --git a/host/include/uhd/utils/pimpl.hpp b/host/include/uhd/utils/pimpl.hpp index 09bf0c0a2..18454f0c4 100644 --- a/host/include/uhd/utils/pimpl.hpp +++ b/host/include/uhd/utils/pimpl.hpp @@ -20,6 +20,7 @@  #include <uhd/config.hpp>  #include <boost/shared_ptr.hpp> +#include <boost/make_shared.hpp>  /*! \file pimpl.hpp   * "Pimpl idiom" (pointer to implementation idiom). @@ -50,6 +51,6 @@   * \param _args the constructor args for the pimpl   */  #define UHD_PIMPL_MAKE(_name, _args) \ -    boost::shared_ptr<_name>(new _name _args) +    boost::make_shared<_name> _args  #endif /* INCLUDED_UHD_UTILS_PIMPL_HPP */ diff --git a/host/lib/usrp/dboard_base.cpp b/host/lib/usrp/dboard_base.cpp index eafb8897f..6c4e29d9e 100644 --- a/host/lib/usrp/dboard_base.cpp +++ b/host/lib/usrp/dboard_base.cpp @@ -26,12 +26,12 @@ using namespace uhd::usrp;   * dboard_base dboard dboard_base class   **********************************************************************/  struct dboard_base::impl{ -    ctor_args_impl args; -    impl(ctor_args_t args) : args(*args){} +    dboard_ctor_args_t args;  };  dboard_base::dboard_base(ctor_args_t args){ -    _impl = UHD_PIMPL_MAKE(impl, (args)); +    _impl = UHD_PIMPL_MAKE(impl, ()); +    _impl->args = *static_cast<dboard_ctor_args_t *>(args);  }  dboard_base::~dboard_base(void){ diff --git a/host/lib/usrp/dboard_ctor_args.hpp b/host/lib/usrp/dboard_ctor_args.hpp index 13abe79e8..708f2ea08 100644 --- a/host/lib/usrp/dboard_ctor_args.hpp +++ b/host/lib/usrp/dboard_ctor_args.hpp @@ -15,18 +15,22 @@  // along with this program.  If not, see <http://www.gnu.org/licenses/>.  // -#ifndef INCLUDED_DBOARD_CTOR_ARGS_HPP -#define INCLUDED_DBOARD_CTOR_ARGS_HPP +#ifndef INCLUDED_LIBUHD_USRP_DBOARD_CTOR_ARGS_HPP +#define INCLUDED_LIBUHD_USRP_DBOARD_CTOR_ARGS_HPP  #include <uhd/usrp/dboard_id.hpp>  #include <uhd/usrp/dboard_base.hpp>  #include <uhd/usrp/dboard_iface.hpp>  #include <string> -struct uhd::usrp::dboard_base::ctor_args_impl{ -    std::string               sd_name; -    dboard_iface::sptr        db_iface; -    dboard_id_t               rx_id, tx_id; -}; +namespace uhd{ namespace usrp{ -#endif /* INCLUDED_DBOARD_CTOR_ARGS_HPP */ +    struct dboard_ctor_args_t{ +        std::string               sd_name; +        dboard_iface::sptr        db_iface; +        dboard_id_t               rx_id, tx_id; +    }; + +}} //namespace + +#endif /* INCLUDED_LIBUHD_USRP_DBOARD_CTOR_ARGS_HPP */ diff --git a/host/lib/usrp/dboard_manager.cpp b/host/lib/usrp/dboard_manager.cpp index 6321e018f..bfaaf0969 100644 --- a/host/lib/usrp/dboard_manager.cpp +++ b/host/lib/usrp/dboard_manager.cpp @@ -242,7 +242,7 @@ dboard_manager_impl::dboard_manager_impl(      set_nice_dboard_if();      //dboard constructor args -    dboard_base::ctor_args_impl db_ctor_args; +    dboard_ctor_args_t db_ctor_args;      db_ctor_args.db_iface = iface;      //make xcvr subdevs (make one subdev for both rx and tx dboards)  | 
