File indexing completed on 2024-04-28 04:36:29

0001 /*
0002     SPDX-FileCopyrightText: 2011 Yannick Motta <yannick.motta@gmail.com>
0003     SPDX-FileCopyrightText: 2011 Martin Heide <martin.heide@gmx.net>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #include "ibuddydocumentfinder.h"
0009 
0010 #include <QMap>
0011 
0012 namespace KDevelop {
0013 
0014 //Our private data is entirely static, so don't need to create an
0015 //instance of the private data class
0016 class IBuddyDocumentFinderPrivate
0017 {
0018 public:
0019     static QMap<QString, IBuddyDocumentFinder*>& finders()
0020     {
0021         static QMap<QString, IBuddyDocumentFinder*> finders;
0022         return finders;
0023     }
0024 };
0025 
0026 // ---------------- "Registry" interface --------------------------------------------
0027 void IBuddyDocumentFinder::addFinder(const QString& mimeType, IBuddyDocumentFinder *finder)
0028 {
0029     IBuddyDocumentFinderPrivate::finders()[mimeType] = finder;
0030 }
0031 
0032 void IBuddyDocumentFinder::removeFinder(const QString& mimeType)
0033 {
0034     IBuddyDocumentFinderPrivate::finders().remove(mimeType);
0035 }
0036 
0037 IBuddyDocumentFinder* IBuddyDocumentFinder::finderForMimeType(const QString& mimeType)
0038 {
0039     return IBuddyDocumentFinderPrivate::finders().value(mimeType, nullptr);
0040 }
0041 
0042 }