foobar2000 SDK
2015-08-03
|
#include <chain_list_v2.h>
Public Types | |
typedef ::pfc::const_iterator< t_item > | const_iterator |
typedef ::pfc::iterator< t_item > | iterator |
typedef __chain_list_elem< t_item > | t_elem |
typedef _t_item | t_item |
typedef chain_list_v2_t< t_item > | t_self |
Public Member Functions | |
chain_list_v2_t () | |
chain_list_v2_t (const t_self &p_source) | |
~chain_list_v2_t () | |
template<typename t_in > | |
void | _add (const t_in &in) |
void | _link_first (const_iterator const &iter) |
void | _link_last (const_iterator const &iter) |
template<typename t_in > | |
void | _set (const t_in &in) |
template<typename t_source > | |
void | add_item (const t_source &p_source) |
const_iterator | by_index (t_size p_index) const |
iterator | by_index (t_size p_index) |
template<typename t_callback > | |
void | enumerate (t_callback &p_callback) const |
template<typename t_callback > | |
void | enumerate (t_callback &p_callback) |
template<typename t_source > | |
const_iterator | find_item (const t_source &p_item) const |
template<typename t_source > | |
iterator | find_item (const t_source &p_item) |
iterator | first () |
const_iterator | first () const |
t_size | get_count () const |
template<typename t_source > | |
bool | have_item (const t_source &p_item) const |
iterator | insert_after (const_iterator const &p_iter) |
template<typename t_source > | |
iterator | insert_after (const_iterator const &p_iter, const t_source &p_source) |
iterator | insert_before (const_iterator const &p_iter) |
template<typename t_source > | |
iterator | insert_before (const_iterator const &p_iter, const t_source &p_source) |
iterator | insert_first () |
template<typename t_source > | |
iterator | insert_first (const t_source &p_source) |
iterator | insert_last () |
template<typename t_source > | |
iterator | insert_last (const t_source &p_source) |
iterator | last () |
const_iterator | last () const |
template<typename t_source > | |
t_self & | operator+= (const t_source &p_source) |
t_self & | operator<< (t_self &p_other) |
template<typename t_in > | |
t_self & | operator= (const t_in &in) |
t_self & | operator= (const t_self &p_other) |
t_self & | operator>> (t_self &p_other) |
void | remove (const_iterator const &p_iter) |
void | remove_all () throw () |
template<typename t_source > | |
bool | remove_item (const t_source &p_item) |
void | remove_range (const_iterator const &p_from, const_iterator const &p_to) |
void | remove_single (const_iterator const &p_iter) |
template<typename t_source > | |
void | set_single (const t_source &p_item) |
Private Member Functions | |
t_elem * | __by_index (t_size p_index) const |
template<typename t_source > | |
bool | __find (t_elem *&p_elem, const t_source &p_item) const |
t_elem * | __link_first (t_elem *p_elem) throw () |
t_elem * | __link_last (t_elem *p_elem) throw () |
t_elem * | __link_next (t_elem *p_prev, t_elem *p_elem) throw () |
t_elem * | __link_prev (t_elem *p_next, t_elem *p_elem) throw () |
void | __on_link (t_elem *p_elem) throw () |
t_elem * | __unlink (t_elem *p_elem) throw () |
void | __unlink_helper (t_elem *p_elem) throw () |
t_elem * | __unlink_temporary (t_elem *p_elem) throw () |
Static Private Member Functions | |
template<typename t_elemwalk , typename t_callback > | |
static void | __enumerate_chain (t_elemwalk *p_elem, t_callback &p_callback) |
static t_elem * | _elem (const_iterator const &iter) |
Private Attributes | |
t_size | m_count |
t_elem * | m_first |
t_elem * | m_last |
Differences between chain_list_v2_t<> and old chain_list_t<>:
Iterators pointing to removed items as well as to items belonging to no longer existing list objects remain valid but they're no longer walkable - as if the referenced item was the only item in the list. The old class invalidated iterators on deletion instead.
Definition at line 26 of file chain_list_v2.h.
typedef ::pfc::const_iterator<t_item> pfc::chain_list_v2_t< _t_item >::const_iterator |
Definition at line 31 of file chain_list_v2.h.
typedef ::pfc::iterator<t_item> pfc::chain_list_v2_t< _t_item >::iterator |
Definition at line 30 of file chain_list_v2.h.
typedef __chain_list_elem<t_item> pfc::chain_list_v2_t< _t_item >::t_elem |
Definition at line 32 of file chain_list_v2.h.
typedef _t_item pfc::chain_list_v2_t< _t_item >::t_item |
Definition at line 28 of file chain_list_v2.h.
typedef chain_list_v2_t<t_item> pfc::chain_list_v2_t< _t_item >::t_self |
Definition at line 29 of file chain_list_v2.h.
|
inline |
Definition at line 34 of file chain_list_v2.h.
|
inline |
Definition at line 35 of file chain_list_v2.h.
|
inline |
Definition at line 105 of file chain_list_v2.h.
|
inlineprivate |
Definition at line 177 of file chain_list_v2.h.
|
inlinestaticprivate |
Definition at line 186 of file chain_list_v2.h.
|
inlineprivate |
Definition at line 194 of file chain_list_v2.h.
|
inlineprivate |
Definition at line 224 of file chain_list_v2.h.
|
inlineprivate |
Definition at line 232 of file chain_list_v2.h.
|
inlineprivate |
Definition at line 240 of file chain_list_v2.h.
|
inlineprivate |
Definition at line 248 of file chain_list_v2.h.
|
inlineprivate |
Definition at line 221 of file chain_list_v2.h.
|
inlineprivate |
Definition at line 216 of file chain_list_v2.h.
|
inlineprivate |
Definition at line 203 of file chain_list_v2.h.
|
inlineprivate |
Definition at line 210 of file chain_list_v2.h.
|
inline |
Definition at line 46 of file chain_list_v2.h.
|
inlinestaticprivate |
Definition at line 174 of file chain_list_v2.h.
|
inline |
Links an object that has been unlinked from another list. Unsafe.
Definition at line 168 of file chain_list_v2.h.
|
inline |
Links an object that has been unlinked from another list. Unsafe.
Definition at line 162 of file chain_list_v2.h.
|
inline |
Definition at line 43 of file chain_list_v2.h.
|
inline |
Definition at line 108 of file chain_list_v2.h.
|
inline |
Slow!
Definition at line 145 of file chain_list_v2.h.
|
inline |
Slow!
Definition at line 147 of file chain_list_v2.h.
|
inline |
Definition at line 92 of file chain_list_v2.h.
|
inline |
Definition at line 93 of file chain_list_v2.h.
|
inline |
Definition at line 124 of file chain_list_v2.h.
|
inline |
Definition at line 130 of file chain_list_v2.h.
|
inline |
Definition at line 63 of file chain_list_v2.h.
|
inline |
Definition at line 65 of file chain_list_v2.h.
|
inline |
Definition at line 61 of file chain_list_v2.h.
|
inline |
Definition at line 136 of file chain_list_v2.h.
|
inline |
Definition at line 117 of file chain_list_v2.h.
|
inline |
Definition at line 121 of file chain_list_v2.h.
|
inline |
Definition at line 118 of file chain_list_v2.h.
|
inline |
Definition at line 122 of file chain_list_v2.h.
|
inline |
Definition at line 116 of file chain_list_v2.h.
|
inline |
Definition at line 120 of file chain_list_v2.h.
|
inline |
Definition at line 115 of file chain_list_v2.h.
|
inline |
Definition at line 119 of file chain_list_v2.h.
|
inline |
Definition at line 64 of file chain_list_v2.h.
|
inline |
Definition at line 66 of file chain_list_v2.h.
|
inline |
Definition at line 112 of file chain_list_v2.h.
|
inline |
Definition at line 149 of file chain_list_v2.h.
|
inline |
Definition at line 49 of file chain_list_v2.h.
|
inline |
Definition at line 51 of file chain_list_v2.h.
|
inline |
Definition at line 155 of file chain_list_v2.h.
|
inline |
Definition at line 73 of file chain_list_v2.h.
|
inline |
Definition at line 78 of file chain_list_v2.h.
|
inline |
Definition at line 95 of file chain_list_v2.h.
|
inline |
Definition at line 82 of file chain_list_v2.h.
|
inline |
Definition at line 68 of file chain_list_v2.h.
|
inline |
Definition at line 140 of file chain_list_v2.h.
|
private |
Definition at line 257 of file chain_list_v2.h.
|
private |
Definition at line 256 of file chain_list_v2.h.
|
private |
Definition at line 256 of file chain_list_v2.h.