USRP Hardware Driver and USRP Manual  Version: 3.11.0.HEAD-0-g13c32cef
UHD and USRP Manual
muxed_zero_copy_if.hpp
Go to the documentation of this file.
1 //
2 // Copyright 2016 Ettus Research LLC
3 // Copyright 2018 Ettus Research, a National Instruments Company
4 //
5 // SPDX-License-Identifier: GPL-3.0-or-later
6 //
7 
8 #ifndef INCLUDED_LIBUHD_TRANSPORT_MUXED_ZERO_COPY_IF_HPP
9 #define INCLUDED_LIBUHD_TRANSPORT_MUXED_ZERO_COPY_IF_HPP
10 
12 #include <uhd/config.hpp>
13 #include <boost/function.hpp>
14 #include <boost/noncopyable.hpp>
15 #include <stdint.h>
16 
17 namespace uhd { namespace transport {
18 
28 class muxed_zero_copy_if : private boost::noncopyable {
29 public:
30  typedef boost::shared_ptr<muxed_zero_copy_if> sptr;
31 
42  typedef boost::function<uint32_t(void* buff, size_t size)> stream_classifier_fn;
43 
45  virtual ~muxed_zero_copy_if() {}
46 
48  virtual zero_copy_if::sptr make_stream(const uint32_t stream_num) = 0;
49 
51  virtual void remove_stream(const uint32_t stream_num) = 0;
52 
54  virtual size_t get_num_dropped_frames() const = 0;
55 
57  static sptr make(zero_copy_if::sptr base_xport, stream_classifier_fn classify_fn, size_t max_streams);
58 };
59 
60 }} //namespace uhd::transport
61 
62 #endif /* INCLUDED_LIBUHD_TRANSPORT_MUXED_ZERO_COPY_IF_HPP */
Definition: muxed_zero_copy_if.hpp:28
boost::shared_ptr< zero_copy_if > sptr
Definition: zero_copy.hpp:144
virtual ~muxed_zero_copy_if()
virtual dtor
Definition: muxed_zero_copy_if.hpp:45
Definition: build_info.hpp:14
boost::function< uint32_t(void *buff, size_t size)> stream_classifier_fn
Definition: muxed_zero_copy_if.hpp:42
virtual size_t get_num_dropped_frames() const =0
Get number of frames dropped due to unregistered streams.
virtual zero_copy_if::sptr make_stream(const uint32_t stream_num)=0
Make a virtual transport for the specified stream number.
boost::shared_ptr< muxed_zero_copy_if > sptr
Definition: muxed_zero_copy_if.hpp:30
static sptr make(zero_copy_if::sptr base_xport, stream_classifier_fn classify_fn, size_t max_streams)
Make a new demuxer from a transport and parameters.
virtual void remove_stream(const uint32_t stream_num)=0
Unregister the stream number. All packets destined to the stream will be dropped. ...