pianod2
multisource multiuser scriptable networked music player
Public Member Functions | Private Types | List of all members
ThingieList Class Reference

Base class for storing lists of thingies, which need to be reference counted accurately. More...

#include <retainedlist.h>

Inheritance diagram for ThingieList:
Inheritance graph
[legend]
Collaboration diagram for ThingieList:
Collaboration graph
[legend]

Public Member Functions

 ~ThingieList ()
 Release items when being destroyed. More...
 
 ThingieList ()=default
 
 ThingieList (const ThingieList &list)
 Copy-construct items into this list. More...
 
 ThingieList (ThingieList &&list)
 Move-construct items into this list. More...
 
ThingieListoperator= (const ThingieList &list)
 Copy assign into the list. More...
 
ThingieListoperator= (ThingieList &&list)
 Move assign into the list. More...
 
template<class... Args>
iterator emplace (const_iterator pos, Args &&...args)=delete
 
template<class... Args>
void emplace_back (Args &&...args)=delete
 
iterator insert (const_iterator pos, std::initializer_list< MusicThingie * >)=delete
 
void clear (void)
 Replace all the usual methods with ones that manage object retention. More...
 
iterator erase (const_iterator target)
 
iterator erase (const_iterator first, const_iterator last)
 
iterator insert (const_iterator where, MusicThingie *const &add)
 
iterator insert (const_iterator where, MusicThingie *&&add)
 
template<class InputIterator >
iterator insert (const_iterator where, InputIterator first, InputIterator last)
 
void push_back (MusicThingie *add)
 
template<typename InsertionType >
void push_back (const Retainer< InsertionType > &add)
 
void push_front (MusicThingie *add)
 
template<typename InsertionType >
void push_front (const Retainer< InsertionType > &add)
 
void pop_back (void)
 
void pop_front (void)
 
void resize (size_type)=delete
 
void join (const ThingieList &from)
 Append another thingielist to this one. More...
 
void join (ThingieList &&from)
 Append another thingielist to this one. More...
 
void limitTo (MusicThingie::Type type)
 Purge anything that isn't a certain type. More...
 
bool purge (const Media::Source *const source)
 Purge any items from a particular source from the list. More...
 

Private Types

using list_type = std::vector< MusicThingie * >
 

Detailed Description

Base class for storing lists of thingies, which need to be reference counted accurately.

All operations automatically retain & release the objects stored herein.

Member Typedef Documentation

◆ list_type

using ThingieList::list_type = std::vector<MusicThingie *>
private

Constructor & Destructor Documentation

◆ ~ThingieList()

ThingieList::~ThingieList ( void  )

Release items when being destroyed.

Here is the call graph for this function:

◆ ThingieList() [1/3]

ThingieList::ThingieList ( )
default

◆ ThingieList() [2/3]

ThingieList::ThingieList ( const ThingieList list)

Copy-construct items into this list.

Let the base constructor deal with copying, so it optimizes for efficiency; afterward we just need to increment the reference counts.

Parameters
listThe list to construct with.
Here is the call graph for this function:

◆ ThingieList() [3/3]

ThingieList::ThingieList ( ThingieList &&  list)

Move-construct items into this list.

Parameters
listThe list to construct with.

Member Function Documentation

◆ clear()

void ThingieList::clear ( void  )

Replace all the usual methods with ones that manage object retention.

Clear out the contents.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ emplace()

template<class... Args>
iterator ThingieList::emplace ( const_iterator  pos,
Args &&...  args 
)
delete

◆ emplace_back()

template<class... Args>
void ThingieList::emplace_back ( Args &&...  args)
delete

◆ erase() [1/2]

ThingieList::iterator ThingieList::erase ( const_iterator  first,
const_iterator  last 
)

◆ erase() [2/2]

ThingieList::iterator ThingieList::erase ( const_iterator  target)
Here is the caller graph for this function:

◆ insert() [1/4]

iterator ThingieList::insert ( const_iterator  pos,
std::initializer_list< MusicThingie * >   
)
delete
Here is the caller graph for this function:

◆ insert() [2/4]

template<class InputIterator >
iterator ThingieList::insert ( const_iterator  where,
InputIterator  first,
InputIterator  last 
)
inline
Here is the call graph for this function:

◆ insert() [3/4]

iterator ThingieList::insert ( const_iterator  where,
MusicThingie *&&  add 
)

◆ insert() [4/4]

ThingieList::iterator ThingieList::insert ( const_iterator  where,
MusicThingie *const &  add 
)
Here is the call graph for this function:

◆ join() [1/2]

void ThingieList::join ( const ThingieList from)

Append another thingielist to this one.

Parameters
fromThe list to append.
Here is the caller graph for this function:

◆ join() [2/2]

void ThingieList::join ( ThingieList &&  from)

Append another thingielist to this one.

Parameters
fromThe list to append.

◆ limitTo()

void ThingieList::limitTo ( MusicThingie::Type  type)

Purge anything that isn't a certain type.

Here is the call graph for this function:

◆ operator=() [1/2]

ThingieList & ThingieList::operator= ( const ThingieList list)

Copy assign into the list.

Parameters
listThe list to construct from.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=() [2/2]

ThingieList & ThingieList::operator= ( ThingieList &&  list)

Move assign into the list.

Parameters
listThe list to move from.

◆ pop_back()

void ThingieList::pop_back ( void  )
Here is the caller graph for this function:

◆ pop_front()

void ThingieList::pop_front ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ purge()

bool ThingieList::purge ( const Media::Source *const  source)

Purge any items from a particular source from the list.

Parameters
sourceThe source whose items to remove.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ push_back() [1/2]

template<typename InsertionType >
void ThingieList::push_back ( const Retainer< InsertionType > &  add)
inline
Here is the call graph for this function:

◆ push_back() [2/2]

void ThingieList::push_back ( MusicThingie add)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ push_front() [1/2]

template<typename InsertionType >
void ThingieList::push_front ( const Retainer< InsertionType > &  add)
inline
Here is the call graph for this function:

◆ push_front() [2/2]

void ThingieList::push_front ( MusicThingie add)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ resize()

void ThingieList::resize ( size_type  )
delete

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