diff --git a/src/algorithms/input_filter/adapters/beamformer_filter.cc b/src/algorithms/input_filter/adapters/beamformer_filter.cc index 2975b8d1d..52f46ca6b 100644 --- a/src/algorithms/input_filter/adapters/beamformer_filter.cc +++ b/src/algorithms/input_filter/adapters/beamformer_filter.cc @@ -49,7 +49,7 @@ BeamformerFilter::BeamformerFilter( if (item_type_ == "gr_complex") { item_size_ = sizeof(gr_complex); - beamformer_ = make_beamformer(); + beamformer_ = make_beamformer_sptr(); DLOG(INFO) << "Item size " << item_size_; DLOG(INFO) << "resampler(" << beamformer_->unique_id() << ")"; } diff --git a/src/algorithms/input_filter/gnuradio_blocks/beamformer.cc b/src/algorithms/input_filter/gnuradio_blocks/beamformer.cc index 6f53c6099..9656f57d0 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/beamformer.cc +++ b/src/algorithms/input_filter/gnuradio_blocks/beamformer.cc @@ -36,7 +36,7 @@ #define GNSS_SDR_BEAMFORMER_CHANNELS 8 -beamformer_sptr make_beamformer() +beamformer_sptr make_beamformer_sptr() { return beamformer_sptr(new beamformer()); } diff --git a/src/algorithms/input_filter/gnuradio_blocks/beamformer.h b/src/algorithms/input_filter/gnuradio_blocks/beamformer.h index 55e9fcc27..b9cdd247a 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/beamformer.h +++ b/src/algorithms/input_filter/gnuradio_blocks/beamformer.h @@ -36,7 +36,7 @@ class beamformer; using beamformer_sptr = boost::shared_ptr; -beamformer_sptr make_beamformer(); +beamformer_sptr make_beamformer_sptr(); /*! * \brief This class implements a real-time software-defined spatial filter using the CTTC GNSS experimental antenna array input and a set of dynamically reloadable weights @@ -44,13 +44,13 @@ beamformer_sptr make_beamformer(); class beamformer : public gr::sync_block { public: - beamformer(); ~beamformer(); int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); private: friend beamformer_sptr make_beamformer_sptr(); + beamformer(); gr_complex *weight_vector; }; diff --git a/src/algorithms/input_filter/gnuradio_blocks/notch_cc.h b/src/algorithms/input_filter/gnuradio_blocks/notch_cc.h index 4f898b154..4640ba4d1 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/notch_cc.h +++ b/src/algorithms/input_filter/gnuradio_blocks/notch_cc.h @@ -41,8 +41,12 @@ class Notch; using notch_sptr = boost::shared_ptr; -notch_sptr make_notch_filter(float pfa, float p_c_factor, - int32_t length_, int32_t n_segments_est, int32_t n_segments_reset); +notch_sptr make_notch_filter( + float pfa, + float p_c_factor, + int32_t length_, + int32_t n_segments_est, + int32_t n_segments_reset); /*! * \brief This class implements a real-time software-defined multi state notch filter @@ -50,8 +54,6 @@ notch_sptr make_notch_filter(float pfa, float p_c_factor, class Notch : public gr::block { public: - Notch(float pfa, float p_c_factor, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset); - ~Notch(); void forecast(int noutput_items, gr_vector_int &ninput_items_required); @@ -61,6 +63,8 @@ public: gr_vector_void_star &output_items); private: + friend notch_sptr make_notch_filter(float pfa, float p_c_factor, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset); + Notch(float pfa, float p_c_factor, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset); float pfa; float noise_pow_est; float thres_; diff --git a/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.h b/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.h index 0a7114240..7b274a13c 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.h +++ b/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.h @@ -41,7 +41,13 @@ class NotchLite; using notch_lite_sptr = boost::shared_ptr; -notch_lite_sptr make_notch_filter_lite(float p_c_factor, float pfa, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset, int32_t n_segments_coeff); +notch_lite_sptr make_notch_filter_lite( + float p_c_factor, + float pfa, + int32_t length_, + int32_t n_segments_est, + int32_t n_segments_reset, + int32_t n_segments_coeff); /*! * \brief This class implements a real-time software-defined multi state notch filter light version @@ -49,8 +55,6 @@ notch_lite_sptr make_notch_filter_lite(float p_c_factor, float pfa, int32_t leng class NotchLite : public gr::block { public: - NotchLite(float p_c_factor, float pfa, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset, int32_t n_segments_coeff); - ~NotchLite(); void forecast(int noutput_items, gr_vector_int &ninput_items_required); @@ -60,6 +64,8 @@ public: gr_vector_void_star &output_items); private: + friend notch_lite_sptr make_notch_filter_lite(float p_c_factor, float pfa, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset, int32_t n_segments_coeff); + NotchLite(float p_c_factor, float pfa, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset, int32_t n_segments_coeff); int32_t length_; int32_t n_segments; int32_t n_segments_est; diff --git a/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.h b/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.h index 52abef24f..edbd9c5e8 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.h +++ b/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.h @@ -39,14 +39,15 @@ class pulse_blanking_cc; using pulse_blanking_cc_sptr = boost::shared_ptr; -pulse_blanking_cc_sptr make_pulse_blanking_cc(float pfa, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset); - +pulse_blanking_cc_sptr make_pulse_blanking_cc( + float pfa, + int32_t length_, + int32_t n_segments_est, + int32_t n_segments_reset); class pulse_blanking_cc : public gr::block { public: - pulse_blanking_cc(float pfa, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset); - ~pulse_blanking_cc(); void forecast(int noutput_items, gr_vector_int &ninput_items_required); @@ -55,6 +56,8 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); private: + friend pulse_blanking_cc_sptr make_pulse_blanking_cc(float pfa, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset); + pulse_blanking_cc(float pfa, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset); int32_t length_; int32_t n_segments; int32_t n_segments_est; diff --git a/src/algorithms/signal_source/libs/gnss_sdr_valve.cc b/src/algorithms/signal_source/libs/gnss_sdr_valve.cc index aa2bd1237..615cb65b7 100644 --- a/src/algorithms/signal_source/libs/gnss_sdr_valve.cc +++ b/src/algorithms/signal_source/libs/gnss_sdr_valve.cc @@ -55,14 +55,14 @@ Gnss_Sdr_Valve::Gnss_Sdr_Valve(size_t sizeof_stream_item, } -boost::shared_ptr gnss_sdr_make_valve(size_t sizeof_stream_item, uint64_t nitems, gr::msg_queue::sptr queue, bool stop_flowgraph) +boost::shared_ptr gnss_sdr_make_valve(size_t sizeof_stream_item, uint64_t nitems, gr::msg_queue::sptr queue, bool stop_flowgraph) { boost::shared_ptr valve_(new Gnss_Sdr_Valve(sizeof_stream_item, nitems, std::move(queue), stop_flowgraph)); return valve_; } -boost::shared_ptr gnss_sdr_make_valve(size_t sizeof_stream_item, uint64_t nitems, gr::msg_queue::sptr queue) +boost::shared_ptr gnss_sdr_make_valve(size_t sizeof_stream_item, uint64_t nitems, gr::msg_queue::sptr queue) { boost::shared_ptr valve_(new Gnss_Sdr_Valve(sizeof_stream_item, nitems, std::move(queue), true)); return valve_; diff --git a/src/algorithms/signal_source/libs/gnss_sdr_valve.h b/src/algorithms/signal_source/libs/gnss_sdr_valve.h index 9bd90a188..b56807c2b 100644 --- a/src/algorithms/signal_source/libs/gnss_sdr_valve.h +++ b/src/algorithms/signal_source/libs/gnss_sdr_valve.h @@ -41,12 +41,14 @@ #include // for size_t #include -boost::shared_ptr gnss_sdr_make_valve( +class Gnss_Sdr_Valve; + +boost::shared_ptr gnss_sdr_make_valve( size_t sizeof_stream_item, uint64_t nitems, gr::msg_queue::sptr queue); -boost::shared_ptr gnss_sdr_make_valve( +boost::shared_ptr gnss_sdr_make_valve( size_t sizeof_stream_item, uint64_t nitems, gr::msg_queue::sptr queue, @@ -65,22 +67,22 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); - Gnss_Sdr_Valve(size_t sizeof_stream_item, - uint64_t nitems, - gr::msg_queue::sptr queue, bool stop_flowgraph); - private: - friend boost::shared_ptr gnss_sdr_make_valve( + friend boost::shared_ptr gnss_sdr_make_valve( size_t sizeof_stream_item, uint64_t nitems, gr::msg_queue::sptr queue); - friend boost::shared_ptr gnss_sdr_make_valve( + friend boost::shared_ptr gnss_sdr_make_valve( size_t sizeof_stream_item, uint64_t nitems, gr::msg_queue::sptr queue, bool stop_flowgraph); + Gnss_Sdr_Valve(size_t sizeof_stream_item, + uint64_t nitems, + gr::msg_queue::sptr queue, bool stop_flowgraph); + uint64_t d_nitems; uint64_t d_ncopied_items; gr::msg_queue::sptr d_queue; diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/tracking_pull-in_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/tracking_pull-in_test.cc index e7aa0676f..fb38b8efa 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/tracking_pull-in_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/tracking_pull-in_test.cc @@ -796,9 +796,8 @@ TEST_F(TrackingPullInTest, ValidationOfResults) // create the msg queue for valve queue = gr::msg_queue::make(0); - boost::shared_ptr reseteable_valve; long long int acq_to_trk_delay_samples = ceil(static_cast(FLAGS_fs_gen_sps) * FLAGS_acq_to_trk_delay_s); - boost::shared_ptr resetable_valve_(new Gnss_Sdr_Valve(sizeof(gr_complex), acq_to_trk_delay_samples, queue, false)); + auto resetable_valve_ = gnss_sdr_make_valve(sizeof(gr_complex), acq_to_trk_delay_samples, queue, false); std::shared_ptr control_message_factory_; std::shared_ptr>> control_messages_;