libpsynth 0.2.1
Public Types | Public Member Functions | Friends
psynth::sound::ring_buffer< Buffer > Class Template Reference

#include <ring_buffer.hpp>

Inheritance diagram for psynth::sound::ring_buffer< Buffer >:
Inheritance graph
[legend]
Collaboration diagram for psynth::sound::ring_buffer< Buffer >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef Buffer::allocator_type allocator_type
typedef parent_type::range_base range
typedef
parent_type::const_range_base 
const_range
typedef range::value_type value_type
typedef range::reference reference
typedef range::unsafe_iterator unsafe_iterator
typedef
const_range::unsafe_iterator 
const_unsafe_iterator
typedef range::iterator iterator
typedef const_range::iterator const_iterator

Public Member Functions

 ring_buffer (typename parent_type::size_type size=0, std::size_t alignment=0, const typename Buffer::allocator_type alloc_in=typename Buffer::allocator_type())
 Create with size and optional initial value and alignment.
 ring_buffer (const Buffer &buf)
template<typename F2 , bool IP2, typename Alloc2 >
 ring_buffer (const buffer< F2, IP2, Alloc2 > &buf)
ring_buffer & operator= (const ring_buffer &buf)
template<class Buffer2 >
ring_buffer & operator= (const ring_buffer< Buffer2 > &buf)
void recreate (typename parent_type::size_type size, typename Buffer::range::value_type val, std::size_t alignment=0)
allocator_type & allocator ()
allocator_type const & allocator () const

Friends

template<typename B >
ring_buffer< B >::range & range (ring_buffer< B > &buf)
template<typename B >
const ring_buffer< B >::const_range const_range (const ring_buffer< B > &buf)

template<class Buffer>
class psynth::sound::ring_buffer< Buffer >


Member Typedef Documentation

template<class Buffer>
typedef Buffer::allocator_type psynth::sound::ring_buffer< Buffer >::allocator_type
template<class Buffer>
typedef const_range::iterator psynth::sound::ring_buffer< Buffer >::const_iterator
template<class Buffer>
typedef parent_type::const_range_base psynth::sound::ring_buffer< Buffer >::const_range
template<class Buffer>
typedef const_range::unsafe_iterator psynth::sound::ring_buffer< Buffer >::const_unsafe_iterator
template<class Buffer>
typedef range::iterator psynth::sound::ring_buffer< Buffer >::iterator
template<class Buffer>
typedef parent_type::range_base psynth::sound::ring_buffer< Buffer >::range
template<class Buffer>
typedef range::reference psynth::sound::ring_buffer< Buffer >::reference
template<class Buffer>
typedef range::unsafe_iterator psynth::sound::ring_buffer< Buffer >::unsafe_iterator
template<class Buffer>
typedef range::value_type psynth::sound::ring_buffer< Buffer >::value_type

Constructor & Destructor Documentation

template<class Buffer>
psynth::sound::ring_buffer< Buffer >::ring_buffer ( typename parent_type::size_type  size = 0,
std::size_t  alignment = 0,
const typename Buffer::allocator_type  alloc_in = typename Buffer::allocator_type () 
) [inline, explicit]

Create with size and optional initial value and alignment.

Todo:
When will GCC support inheriting constructors? :(
template<class Buffer>
psynth::sound::ring_buffer< Buffer >::ring_buffer ( const Buffer &  buf) [inline, explicit]
template<class Buffer>
template<typename F2 , bool IP2, typename Alloc2 >
psynth::sound::ring_buffer< Buffer >::ring_buffer ( const buffer< F2, IP2, Alloc2 > &  buf) [inline, explicit]

Member Function Documentation

template<class Buffer>
allocator_type& psynth::sound::ring_buffer< Buffer >::allocator ( ) [inline]
template<class Buffer>
allocator_type const& psynth::sound::ring_buffer< Buffer >::allocator ( ) const [inline]
template<class Buffer>
template<class Buffer2 >
ring_buffer& psynth::sound::ring_buffer< Buffer >::operator= ( const ring_buffer< Buffer2 > &  buf) [inline]
template<class Buffer>
ring_buffer& psynth::sound::ring_buffer< Buffer >::operator= ( const ring_buffer< Buffer > &  buf) [inline]
template<class Buffer>
void psynth::sound::ring_buffer< Buffer >::recreate ( typename parent_type::size_type  size,
typename Buffer::range::value_type  val,
std::size_t  alignment = 0 
) [inline]

Friends And Related Function Documentation

template<class Buffer>
template<typename B >
const ring_buffer<B>::const_range const_range ( const ring_buffer< B > &  buf) [friend]
template<class Buffer>
template<typename B >
ring_buffer<B>::range& range ( ring_buffer< B > &  buf) [friend]
Todo:
This returns non-const reference because writing to a ring_buffer_range mutates the internal range state.

Does this has bad consecuences? Is this the best alternative?


The documentation for this class was generated from the following file: