00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#ifndef TAGLIB_MAP_H
00023
#define TAGLIB_MAP_H
00024
00025
#include "taglib.h"
00026
00027
#include <map>
00028
00029
namespace TagLib {
00030
00032
00039 template <
class Key,
class T>
class Map
00040 {
00041
public:
00042
#ifndef DO_NOT_DOCUMENT
00043
typedef typename std::map<Key, T>::iterator Iterator;
00044
typedef typename std::map<Key, T>::const_iterator ConstIterator;
00045
#endif
00046
00050
Map();
00051
00057
Map(
const Map<Key, T> &m);
00058
00062
virtual ~Map();
00063
00068 Iterator
begin();
00069
00074 ConstIterator
begin()
const;
00075
00080 Iterator
end();
00081
00086 ConstIterator
end()
const;
00087
00092
void insert(
const Key &key,
const T &value);
00093
00098
void clear();
00099
00105
uint size()
const;
00106
00112
bool isEmpty()
const;
00113
00117
bool contains(
const Key &key)
const;
00118
00124
const T &
operator[](
const Key &key)
const;
00125
00131 T &
operator[](
const Key &key);
00132
00138
Map<Key, T> &
operator=(
const Map<Key, T> &m);
00139
00140
protected:
00141
00142
00143
00144
00145
00146
void detach();
00147
00148
private:
00149
#ifndef DO_NOT_DOCUMENT
00150
template <
class KeyP,
class TP>
class MapPrivate;
00151 MapPrivate<Key, T> *d;
00152
#endif
00153
};
00154
00155 }
00156
00157
00158
00159
00160
#include "tmap.tcc"
00161
00162
#endif