Warning, file /office/calligra/libs/pigment/KoUniqueNumberForIdServer.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * Copyright (c) 2008 Cyrille Berger <cberger@cberger.net> 0003 * 0004 * This library is free software; you can redistribute it and/or 0005 * modify it under the terms of the GNU Lesser General Public 0006 * License as published by the Free Software Foundation; either 0007 * version 2.1 of the License, or (at your option) any later version. 0008 * 0009 * This library is distributed in the hope that it will be useful, 0010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0012 * Lesser General Public License for more details. 0013 * 0014 * You should have received a copy of the GNU Lesser General Public License 0015 * along with this library; see the file COPYING.LIB. If not, write to 0016 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 0017 * Boston, MA 02110-1301, USA. 0018 */ 0019 0020 #include "KoUniqueNumberForIdServer.h" 0021 0022 #include <QHash> 0023 #include <QGlobalStatic> 0024 0025 Q_GLOBAL_STATIC(KoUniqueNumberForIdServer, s_instance) 0026 0027 struct Q_DECL_HIDDEN KoUniqueNumberForIdServer::Private { 0028 Private() 0029 : currentNumber(0) {} 0030 0031 QHash<QString, quint32 > id2Number; 0032 quint32 currentNumber; 0033 }; 0034 0035 KoUniqueNumberForIdServer::KoUniqueNumberForIdServer() 0036 : d(new Private) 0037 { 0038 } 0039 0040 KoUniqueNumberForIdServer::~KoUniqueNumberForIdServer() 0041 { 0042 delete d; 0043 } 0044 0045 KoUniqueNumberForIdServer* KoUniqueNumberForIdServer::instance() 0046 { 0047 return s_instance; 0048 } 0049 0050 quint32 KoUniqueNumberForIdServer::numberForId(const QString& _id) 0051 { 0052 QHash<QString, quint32>::iterator it = d->id2Number.find(_id); 0053 if (it != d->id2Number.end()) { 0054 return it.value(); 0055 } 0056 quint32 number = ++d->currentNumber; 0057 d->id2Number[ _id ] = number; 0058 return number; 0059 }