File indexing completed on 2024-06-23 04:34:46

0001 /*
0002     SPDX-FileCopyrightText: 2008 David Nolden <david.nolden.kdevelop@art-master.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-only
0005 */
0006 
0007 #ifndef KDEVPLATFORM_TYPEREPOSITORY_H
0008 #define KDEVPLATFORM_TYPEREPOSITORY_H
0009 
0010 #include <language/duchain/types/abstracttype.h>
0011 
0012 class QRecursiveMutex;
0013 
0014 namespace KDevelop {
0015 struct ReferenceCountManager;
0016 
0017 class TypeRepository
0018 {
0019 public:
0020     static uint indexForType(const AbstractType* input);
0021     static AbstractType::Ptr typeForIndex(uint index);
0022     static void increaseReferenceCount(uint index);
0023     static void decreaseReferenceCount(uint index);
0024     static void increaseReferenceCount(uint index, ReferenceCountManager* manager);
0025     static void decreaseReferenceCount(uint index, ReferenceCountManager* manager);
0026 };
0027 
0028 QRecursiveMutex* typeRepositoryMutex();
0029 }
0030 
0031 #endif