* Bug 15599 fixed: now degree of zero polynomial is -Inf
[scilab.git] / scilab / modules / ast / includes / types / inspector.hxx
1 /*
2 *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 *  Copyright (C) 2011 - DIGITEO - Antoine ELIAS
4 *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13 *
14 */
15
16 #ifndef __INSPECTOR_HXX__
17 #define __INSPECTOR_HXX__
18
19 //disable warnings about exports STL items
20 #ifdef _MSC_VER
21 #pragma warning (disable : 4251)
22 #endif
23
24 #include <unordered_set>
25 #include <string>
26 #include "dynlib_ast.h"
27
28 namespace types
29 {
30 class InternalType;
31
32 #ifndef NDEBUG
33 class EXTERN_AST Inspector
34 {
35 protected :
36     static std::unordered_set<InternalType*> m_vIT;
37
38 public :
39     static size_t getItemCount();
40     static size_t getUnreferencedItemCount();
41
42     static void addItem(InternalType* _pIT);
43     static void removeItem(InternalType* _pIT);
44
45     static InternalType* getItem(size_t _iPos);
46     static InternalType* getUnreferencedItem(size_t _iPos);
47
48     static std::wstring showItem(size_t _iPos);
49     static std::wstring showUnreferencedItem(size_t _iPos);
50     static void deleteItems();
51     static void displayMemleak();
52 };
53 #endif
54 }
55 #endif /* !__INSPECTOR_HXX__ */