00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#ifndef TAGLIB_LIST_H
00023
#define TAGLIB_LIST_H
00024
00025
#include "taglib.h"
00026
00027
#include <list>
00028
00029
namespace TagLib {
00030
00032
00049 template <
class T>
class List
00050 {
00051
public:
00052
#ifndef DO_NOT_DOCUMENT
00053
typedef typename std::list<T>::iterator Iterator;
00054
typedef typename std::list<T>::const_iterator ConstIterator;
00055
#endif
00056
00060
List();
00061
00067
List(
const List<T> &l);
00068
00073
virtual ~List();
00074
00079 Iterator
begin();
00080
00085 ConstIterator
begin()
const;
00086
00091 Iterator
end();
00092
00097 ConstIterator
end()
const;
00098
00102
void insert(Iterator it,
const T &value);
00103
00109
void sortedInsert(
const T &value,
bool unique =
false);
00110
00114
void append(
const T &item);
00115
00119
void append(
const List<T> &l);
00120
00127
void clear();
00128
00132
uint size()
const;
00133
bool isEmpty()
const;
00134
00138 Iterator
find(
const T &value);
00139
00143 ConstIterator find(
const T &value)
const;
00144
00148
bool contains(
const T &value)
const;
00149
00153
void erase(Iterator it);
00154
00158
const T &
front()
const;
00159
00163 T &
front();
00164
00168
const T &
back()
const;
00169
00173 T &
back();
00174
00183
void setAutoDelete(
bool autoDelete);
00184
00190 T &
operator[](
uint i);
00191
00197
const T &
operator[](
uint i)
const;
00198
00204
List<T> &
operator=(
const List<T> &l);
00205
00210
bool operator==(
const List<T> &l)
const;
00211
00212
protected:
00213
00214
00215
00216
00217
00218
void detach();
00219
00220
private:
00221
#ifndef DO_NOT_DOCUMENT
00222
template <
class TP>
class ListPrivate;
00223 ListPrivate<T> *d;
00224
#endif
00225
};
00226
00227 }
00228
00229
00230
00231
00232
#include "tlist.tcc"
00233
00234
#endif