%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 188.40.95.74 / Your IP : 216.73.216.100 Web Server : Apache System : Linux cp01.striminghost.net 3.10.0-1160.119.1.el7.tuxcare.els13.x86_64 #1 SMP Fri Nov 22 06:29:45 UTC 2024 x86_64 User : vlasotin ( 1054) PHP Version : 5.6.40 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/include/taglib/ |
Upload File : |
/*************************************************************************** copyright : (C) 2002 - 2008 by Scott Wheeler email : wheeler@kde.org ***************************************************************************/ /*************************************************************************** * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License version * * 2.1 as published by the Free Software Foundation. * * * * This library is distributed in the hope that it will be useful, but * * WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * * 02110-1301 USA * * * * Alternatively, this file is available under the Mozilla Public * * License Version 1.1. You may obtain a copy of the License at * * http://www.mozilla.org/MPL/ * ***************************************************************************/ namespace TagLib { //////////////////////////////////////////////////////////////////////////////// // public members //////////////////////////////////////////////////////////////////////////////// template <class Key, class T> template <class KeyP, class TP> class Map<Key, T>::MapPrivate : public RefCounter { public: MapPrivate() : RefCounter() {} #ifdef WANT_CLASS_INSTANTIATION_OF_MAP MapPrivate(const std::map<class KeyP, class TP>& m) : RefCounter(), map(m) {} std::map<class KeyP, class TP> map; #else MapPrivate(const std::map<KeyP, TP>& m) : RefCounter(), map(m) {} std::map<KeyP, TP> map; #endif }; template <class Key, class T> Map<Key, T>::Map() { d = new MapPrivate<Key, T>; } template <class Key, class T> Map<Key, T>::Map(const Map<Key, T> &m) : d(m.d) { d->ref(); } template <class Key, class T> Map<Key, T>::~Map() { if(d->deref()) delete(d); } template <class Key, class T> typename Map<Key, T>::Iterator Map<Key, T>::begin() { detach(); return d->map.begin(); } template <class Key, class T> typename Map<Key, T>::ConstIterator Map<Key, T>::begin() const { return d->map.begin(); } template <class Key, class T> typename Map<Key, T>::Iterator Map<Key, T>::end() { detach(); return d->map.end(); } template <class Key, class T> typename Map<Key, T>::ConstIterator Map<Key, T>::end() const { return d->map.end(); } template <class Key, class T> Map<Key, T> &Map<Key, T>::insert(const Key &key, const T &value) { detach(); d->map[key] = value; return *this; } template <class Key, class T> Map<Key, T> &Map<Key, T>::clear() { detach(); d->map.clear(); return *this; } template <class Key, class T> bool Map<Key, T>::isEmpty() const { return d->map.empty(); } template <class Key, class T> typename Map<Key, T>::Iterator Map<Key, T>::find(const Key &key) { detach(); return d->map.find(key); } template <class Key, class T> typename Map<Key,T>::ConstIterator Map<Key, T>::find(const Key &key) const { return d->map.find(key); } template <class Key, class T> bool Map<Key, T>::contains(const Key &key) const { return d->map.find(key) != d->map.end(); } template <class Key, class T> Map<Key, T> &Map<Key,T>::erase(Iterator it) { detach(); d->map.erase(it); return *this; } template <class Key, class T> Map<Key, T> &Map<Key,T>::erase(const Key &key) { detach(); Iterator it = d->map.find(key); if(it != d->map.end()) d->map.erase(it); return *this; } template <class Key, class T> TagLib::uint Map<Key, T>::size() const { return d->map.size(); } template <class Key, class T> const T &Map<Key, T>::operator[](const Key &key) const { return d->map[key]; } template <class Key, class T> T &Map<Key, T>::operator[](const Key &key) { detach(); return d->map[key]; } template <class Key, class T> Map<Key, T> &Map<Key, T>::operator=(const Map<Key, T> &m) { if(&m == this) return *this; if(d->deref()) delete(d); d = m.d; d->ref(); return *this; } //////////////////////////////////////////////////////////////////////////////// // protected members //////////////////////////////////////////////////////////////////////////////// template <class Key, class T> void Map<Key, T>::detach() { if(d->count() > 1) { d->deref(); d = new MapPrivate<Key, T>(d->map); } } } // namespace TagLib