* Bug 14606 fixed: now `[names,mem]=who()` returns memory used by variables
[scilab.git] / scilab / modules / ast / includes / types / mlist.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2010-2010 - 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 __MLIST_HH__
17 #define __MLIST_HH__
18
19 #include <vector>
20 #include "tlist.hxx"
21
22 namespace types
23 {
24 class EXTERN_AST MList : public TList
25 {
26 public :
27     MList() : TList() {}
28     //Destructor uses ~TList()
29
30     virtual MList*                  clone()
31     {
32         return new MList(this);
33     }
34     void                            whoAmI(void)
35     {
36         std::cout << "types::MList";
37     };
38
39     ScilabType                      getType(void)
40     {
41         return ScilabMList;
42     }
43     bool                            isMList()
44     {
45         return true;
46     }
47     bool                            isTList()
48     {
49         return false;
50     }
51
52     bool                            getMemory(int* _piSize, int* _piSizePlusType);
53
54     virtual bool invoke(typed_list & in, optional_list & opt, int _iRetCount, typed_list & out, const ast::Exp & e) override;
55
56 protected :
57     MList(MList *_oMListCopyMe) : TList(_oMListCopyMe) {}
58 };
59 }
60
61 #endif /* __MLIST_HH__ */