12#include <boost/detail/atomic_count.hpp> 
   13#include <boost/intrusive_ptr.hpp> 
   14#include <boost/utility.hpp> 
   17namespace uhd { 
namespace transport {
 
   50        return static_cast<T
>(_buffer);
 
   68        return boost::intrusive_ptr<T>(p);
 
   72    typedef boost::intrusive_ptr<managed_buffer> 
sptr;
 
   76        return (
int)_ref_count;
 
  105    typedef boost::intrusive_ptr<managed_recv_buffer> 
sptr;
 
  116    typedef boost::intrusive_ptr<managed_send_buffer> 
sptr;
 
  149    typedef std::shared_ptr<zero_copy_if> 
sptr;
 
Simple managed buffer with release interface.
Definition: zero_copy.hpp:21
 
int ref_count()
Definition: zero_copy.hpp:74
 
UHD_INLINE void commit(size_t num_bytes)
Definition: zero_copy.hpp:38
 
boost::detail::atomic_count _ref_count
Definition: zero_copy.hpp:71
 
managed_buffer(void)
Definition: zero_copy.hpp:23
 
size_t _length
Definition: zero_copy.hpp:81
 
virtual ~managed_buffer(void)
Definition: zero_copy.hpp:25
 
UHD_INLINE size_t size(void) const
Definition: zero_copy.hpp:57
 
UHD_INLINE boost::intrusive_ptr< T > make(T *p, void *buffer, size_t length)
Create smart pointer to a reusable managed buffer.
Definition: zero_copy.hpp:64
 
boost::intrusive_ptr< managed_buffer > sptr
Definition: zero_copy.hpp:72
 
void * _buffer
Definition: zero_copy.hpp:80
 
UHD_INLINE T cast(void) const
Definition: zero_copy.hpp:48
 
virtual void release(void)=0
 
Definition: zero_copy.hpp:103
 
boost::intrusive_ptr< managed_recv_buffer > sptr
Definition: zero_copy.hpp:105
 
Definition: zero_copy.hpp:114
 
boost::intrusive_ptr< managed_send_buffer > sptr
Definition: zero_copy.hpp:116
 
Definition: zero_copy.hpp:147
 
virtual managed_send_buffer::sptr get_send_buff(double timeout=0.1)=0
 
virtual size_t get_num_send_frames(void) const =0
 
virtual managed_recv_buffer::sptr get_recv_buff(double timeout=0.1)=0
 
std::shared_ptr< zero_copy_if > sptr
Definition: zero_copy.hpp:149
 
virtual size_t get_recv_frame_size(void) const =0
 
virtual size_t get_send_frame_size(void) const =0
 
virtual ~zero_copy_if()
Definition: zero_copy.hpp:154
 
virtual size_t get_num_recv_frames(void) const =0
 
#define UHD_INLINE
Definition: config.h:55
 
#define UHD_API
Definition: config.h:70
 
UHD_INLINE void intrusive_ptr_add_ref(managed_buffer *p)
Definition: zero_copy.hpp:86
 
UHD_INLINE void intrusive_ptr_release(managed_buffer *p)
Definition: zero_copy.hpp:91
 
Definition: build_info.hpp:12
 
boost::noncopyable noncopyable
Definition: noncopyable.hpp:45
 
Definition: zero_copy.hpp:123
 
size_t num_recv_frames
Definition: zero_copy.hpp:135
 
size_t recv_frame_size
Definition: zero_copy.hpp:133
 
size_t send_buff_size
Definition: zero_copy.hpp:138
 
size_t send_frame_size
Definition: zero_copy.hpp:134
 
size_t recv_buff_size
Definition: zero_copy.hpp:137
 
zero_copy_xport_params()
Definition: zero_copy.hpp:124
 
size_t num_send_frames
Definition: zero_copy.hpp:136