Coverity: ast module uninitialized members fixed
[scilab.git] / scilab / modules / ast / includes / types / pointer.hxx
1 /*
2 *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 *  Copyright (C) 2012 - Scilab Enterprises - 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 __POINTER_HXX__
17 #define __POINTER_HXX__
18
19 #include "user.hxx"
20
21 namespace types
22 {
23 class Pointer : public UserType
24 {
25 public:
26     Pointer()
27     {
28         m_pvData = NULL;
29         m_cplx = false;
30     }
31
32     Pointer(void* _pvData)
33     {
34         m_pvData = _pvData;
35         m_cplx = false;
36     }
37
38     Pointer(int _rows, int _cols, void* _pvData, bool _complex = false)
39     {
40         m_iRows = _rows;
41         m_iCols = _cols;
42         m_pvData = _pvData;
43         m_cplx = _complex;
44     }
45
46     virtual ~Pointer() {}
47
48     bool hasToString()
49     {
50         return false;
51     }
52
53     std::wstring getTypeStr()
54     {
55         return L"pointer";
56     }
57
58     std::wstring getShortTypeStr()
59     {
60         return L"ptr";
61     }
62
63     bool isPointer(void)
64     {
65         return true;
66     }
67
68     bool isComplex(void)
69     {
70         return m_cplx;
71     }
72
73     bool toString(std::wostringstream& ostr)
74     {
75         return true;
76     }
77
78     Pointer* clone()
79     {
80         return new Pointer(m_iRows, m_iCols, m_pvData, m_cplx);
81     }
82
83     void* get()
84     {
85         return m_pvData;
86     }
87
88     void set(void* _pvData)
89     {
90         m_pvData = _pvData;
91     }
92
93     virtual bool isAssignable(void)
94     {
95         return true;
96     }
97
98 protected:
99
100     void* m_pvData;
101     bool m_cplx;
102 };
103 }
104
105 #endif /* !__POINTER_HXX__ */