c29951d6695288e7d584387d2a9c6562b367690e
[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 <vector>
22 #include <string>
23
24 #include "internal.hxx"
25
26 namespace types
27 {
28 #ifndef NDEBUG
29 class EXTERN_AST Inspector
30 {
31 protected :
32     static std::vector<InternalType*> m_vIT;
33
34 public :
35     static size_t getItemCount();
36     static size_t getUnreferencedItemCount();
37
38     static void addItem(InternalType* _pIT);
39     static void removeItem(InternalType* _pIT);
40
41     static InternalType* getItem(size_t _iPos);
42     static InternalType* getUnreferencedItem(size_t _iPos);
43
44     static std::wstring showItem(size_t _iPos);
45     static std::wstring showUnreferencedItem(size_t _iPos);
46     static void deleteItems();
47     static void displayMemleak();
48 };
49 #endif
50 }
51 #endif /* !__INSPECTOR_HXX__ */