foobar2000 SDK
2015-08-03
|
#include <avltree.h>
Public Types | |
typedef pfc::const_iterator< t_storage > | const_iterator |
typedef pfc::iterator< t_storage > | iterator |
typedef t_storage | t_item |
typedef avltree_t< t_storage, t_comparator > | t_self |
Public Member Functions | |
avltree_t () | |
avltree_t (const t_self &p_other) | |
template<typename t_other > | |
avltree_t (const t_other &p_other) | |
~avltree_t () | |
template<typename t_callback > | |
void | _enumerate_var (t_callback &p_callback) |
iterator | _first_var () |
iterator | _last_var () |
template<typename t_param > | |
t_storage & | add (const t_param &p_item) |
template<typename t_param > | |
t_storage & | add_ex (const t_param &p_item, bool &p_isnew) |
template<typename t_param > | |
t_storage & | add_item (t_param const &p_item) |
template<typename t_param > | |
bool | add_item_check (t_param const &item) |
template<typename t_param > | |
t_storage & | add_item_ex (t_param const &p_item, bool &p_isnew) |
template<typename t_param > | |
bool | contains (const t_param &p_item) const |
template<typename t_callback > | |
void | enumerate (t_callback &p_callback) const |
template<typename t_param > | |
bool | exists (t_param const &p_item) const |
template<typename t_param > | |
const_iterator | find (t_param const &item) const |
template<typename t_param > | |
iterator | find (t_param const &item) |
template<typename t_param > | |
const t_storage * | find_item_ptr (t_param const &p_item) const |
template<typename t_param > | |
t_storage * | find_item_ptr (t_param const &p_item) |
template<bool inclusive, bool above, typename t_search > | |
const t_storage * | find_nearest_item (const t_search &p_search) const |
template<bool inclusive, bool above, typename t_search > | |
t_storage * | find_nearest_item (const t_search &p_search) |
template<typename t_param > | |
const t_storage * | find_ptr (t_param const &p_item) const |
template<typename t_param > | |
t_storage * | find_ptr (t_param const &p_item) |
const_iterator | first () const throw () |
t_size | get_count () const throw () |
template<typename t_param > | |
bool | get_first (t_param &p_item) const throw () |
template<typename t_param > | |
bool | get_last (t_param &p_item) const throw () |
template<typename t_param > | |
bool | have_item (const t_param &p_item) const |
template<typename t_param > | |
iterator | insert (const t_param &p_item) |
const_iterator | last () const throw () |
bool | operator!= (const t_self &other) const |
template<typename t_param > | |
t_self & | operator+= (const t_param &p_item) |
template<typename t_param > | |
t_self & | operator-= (const t_param &p_item) |
const t_self & | operator= (const t_self &p_other) |
template<typename t_other > | |
const t_self & | operator= (const t_other &p_other) |
bool | operator== (const t_self &other) const |
bool | remove (const_iterator const &iter) |
void | remove_all () throw () |
template<typename t_param > | |
bool | remove_item (t_param const &p_item) |
void | reset () |
template<typename t_param > | |
void | set_item (const t_param &p_item) |
Static Public Member Functions | |
static bool | equals (const t_self &v1, const t_self &v2) |
Private Types | |
typedef _avltree_node< t_storage > | t_node |
typedef refcounted_object_ptr_t< t_node > | t_nodeptr |
typedef t_node::t_ptr | t_nodeptr |
typedef t_node * | t_noderawptr |
typedef t_node::t_rawptr | t_noderawptr |
Private Member Functions | |
void | __copy (const t_self &p_other) |
template<bool inclusive, bool above, typename t_search > | |
t_storage * | __find_nearest (const t_search &p_search) const |
template<typename t_param > | |
t_storage * | _find_item_ptr (t_param const &p_item) const |
template<typename t_param > | |
t_node * | _find_node_ptr (t_param const &p_item) const |
t_node * | _firstlast (bool which) const throw () |
Static Private Member Functions | |
static t_nodeptr | __copy_recur (t_node *p_source, t_node *parent) |
template<typename t_nodewalk , typename t_callback > | |
static void | __enum_items_recur (t_nodewalk *p_node, t_callback &p_callback) |
static void | _unlink_recur (t_nodeptr &node) |
static void | assert_children (t_nodeptr ptr) |
static t_size | calc_count (const t_node *p_node) throw () |
static t_size | calc_depth (const t_nodeptr &ptr) |
template<typename t_item1 , typename t_item2 > | |
static int | compare (const t_item1 &p_item1, const t_item2 &p_item2) |
static t_nodeptr | extract_left_leaf (t_nodeptr &p_base) |
static t_nodeptr | extract_right_leaf (t_nodeptr &p_base) |
template<typename t_search > | |
static t_storage * | g_find_or_add (t_nodeptr &p_base, t_node *parent, t_search const &p_search, bool &p_new) |
template<typename t_search > | |
static t_node * | g_find_or_add_node (t_nodeptr &p_base, t_node *parent, t_search const &p_search, bool &p_new) |
static void | g_rebalance (t_nodeptr &p_node) |
template<typename t_search > | |
static bool | g_remove (t_nodeptr &p_node, t_search const &p_search) |
static void | g_rotate_left (t_nodeptr &oldroot) |
static void | g_rotate_right (t_nodeptr &oldroot) |
static bool | is_ptr_valid (t_nodeptr const &p) |
static bool | is_ptr_valid (t_node const *p) |
static void | recalc_depth (t_nodeptr const &ptr) |
static void | remove_internal (t_nodeptr &p_node) |
static void | selftest (t_nodeptr const &p_node) |
static t_ssize | test_depth (t_nodeptr const &ptr) |
Private Attributes | |
t_nodeptr | m_root |
typedef pfc::const_iterator<t_storage> pfc::avltree_t< t_storage, t_comparator >::const_iterator |
typedef pfc::iterator<t_storage> pfc::avltree_t< t_storage, t_comparator >::iterator |
typedef t_storage pfc::avltree_t< t_storage, t_comparator >::t_item |
|
private |
|
private |
|
private |
|
private |
|
private |
typedef avltree_t<t_storage,t_comparator> pfc::avltree_t< t_storage, t_comparator >::t_self |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 368 of file avltree.h.
|
inlineprivate |
Definition at line 541 of file avltree.h.
|
inlinestaticprivate |
Definition at line 528 of file avltree.h.
|
inlinestaticprivate |
|
inlineprivate |
Definition at line 340 of file avltree.h.
|
inline |
|
inlineprivate |
Definition at line 317 of file avltree.h.
|
inlineprivate |
Definition at line 329 of file avltree.h.
|
inline |
|
inlineprivate |
|
inline |
|
inlinestaticprivate |
|
inline |
|
inline |
Definition at line 476 of file avltree.h.
|
inline |
Definition at line 380 of file avltree.h.
|
inline |
Returns true when the list has been altered, false when the item was already present before.
Definition at line 393 of file avltree.h.
|
inline |
Definition at line 400 of file avltree.h.
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inline |
Definition at line 427 of file avltree.h.
|
inline |
|
inlinestatic |
Definition at line 505 of file avltree.h.
|
inline |
Definition at line 479 of file avltree.h.
|
inlinestaticprivate |
Definition at line 118 of file avltree.h.
|
inlinestaticprivate |
Definition at line 135 of file avltree.h.
|
inline |
Definition at line 420 of file avltree.h.
|
inline |
Unsafe! Caller must not modify items in a way that changes sort order!
Definition at line 423 of file avltree.h.
|
inline |
Definition at line 414 of file avltree.h.
|
inline |
Unsafe! Caller must not modify items in a way that changes sort order!
Definition at line 418 of file avltree.h.
|
inline |
|
inline |
|
inline |
Definition at line 477 of file avltree.h.
|
inline |
Definition at line 478 of file avltree.h.
|
inline |
|
inlinestaticprivate |
Definition at line 216 of file avltree.h.
|
inlinestaticprivate |
Definition at line 181 of file avltree.h.
|
inlinestaticprivate |
Definition at line 243 of file avltree.h.
|
inlinestaticprivate |
Definition at line 262 of file avltree.h.
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inline |
|
inline |
Definition at line 492 of file avltree.h.
|
inline |
Definition at line 498 of file avltree.h.
|
inline |
|
inline |
Definition at line 467 of file avltree.h.
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inline |
|
inline |
Definition at line 509 of file avltree.h.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 367 of file avltree.h.
|
inline |
Definition at line 508 of file avltree.h.
|
inlinestaticprivate |
|
inline |
|
inline |
|
inlinestaticprivate |
Definition at line 152 of file avltree.h.
|
inline |
|
inline |
|
inlinestaticprivate |
|
inline |
Definition at line 407 of file avltree.h.
|
inlinestaticprivate |
|
private |