ff086afb8141c483b25bc23eafeee4ec71c05dd7
[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 *  This file must be used under the terms of the CeCILL.
6 *  This source file is licensed as described in the file COPYING, which
7 *  you should have received as part of this distribution.  The terms
8 *  are also available at
9 *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10 *
11 */
12
13 #ifndef __INSPECTOR_HXX__
14 #define __INSPECTOR_HXX__
15
16 //disable warnings about exports STL items
17 #ifdef _MSC_VER
18 #pragma warning (disable : 4251)
19 #endif
20
21 #include <list>
22 #include <string>
23 #include "dynlib_ast.h"
24
25 namespace types
26 {
27 class InternalType;
28
29 #ifndef NDEBUG
30 class EXTERN_AST Inspector
31 {
32 protected :
33     static std::list<InternalType*> m_vIT;
34
35 public :
36     static size_t getItemCount();
37     static size_t getUnreferencedItemCount();
38
39     static void addItem(InternalType* _pIT);
40     static void removeItem(InternalType* _pIT);
41
42     static InternalType* getItem(size_t _iPos);
43     static InternalType* getUnreferencedItem(size_t _iPos);
44
45     static std::wstring showItem(size_t _iPos);
46     static std::wstring showUnreferencedItem(size_t _iPos);
47     static void deleteItems();
48     static void displayMemleak();
49 };
50 #endif
51 }
52 #endif /* !__INSPECTOR_HXX__ */