Xcos MVC: fix some unneeded dependencies
[scilab.git] / scilab / modules / scicos / src / cpp / LoggerView.cpp
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2014-2014 - Scilab Enterprises - Clement DAVID
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 #include <iostream>
14 #include <sstream>
15 #include "scilabWrite.hxx"
16
17 #include "LoggerView.hxx"
18 #include "Controller.hxx"
19
20 namespace org_scilab_modules_scicos
21 {
22
23 LoggerView::LoggerView()
24 {
25 }
26
27 LoggerView::~LoggerView()
28 {
29 }
30
31 // generated with :
32 // awk ' $2 == "//!<" {sub(",","", $1); print "case " $1 ":\n    os << \"" $1 "\";\n    break;" }' ~/work/branches/YaSp/scilab/modules/scicos/includes/utilities.hxx
33
34 std::ostream& operator<<(std::ostream& os, update_status_t u)
35 {
36     switch (u)
37     {
38         case SUCCESS:
39             os << "SUCCESS";
40             break;
41         case NO_CHANGES:
42             os << "NO_CHANGES";
43             break;
44         case FAIL:
45             os << "FAIL";
46             break;
47     }
48     return os;
49 }
50
51 std::ostream& operator<<(std::ostream& os, kind_t k)
52 {
53     switch (k)
54     {
55         case ANNOTATION:
56             os << "ANNOTATION";
57             break;
58         case BLOCK:
59             os << "BLOCK";
60             break;
61         case DIAGRAM:
62             os << "DIAGRAM";
63             break;
64         case LINK:
65             os << "LINK";
66             break;
67         case PORT:
68             os << "PORT";
69             break;
70     }
71     return os;
72 }
73
74
75 std::ostream& operator<<(std::ostream& os, object_properties_t p)
76 {
77     switch (p)
78     {
79         case PARENT_DIAGRAM:
80             os << "PARENT_DIAGRAM";
81             break;
82         case GEOMETRY:
83             os << "GEOMETRY";
84             break;
85         case DESCRIPTION:
86             os << "DESCRIPTION";
87             break;
88         case RELATED_TO:
89             os << "RELATED_TO";
90             break;
91         case INTERFACE_FUNCTION:
92             os << "INTERFACE_FUNCTION";
93             break;
94         case SIM_FUNCTION_NAME:
95             os << "SIM_FUNCTION_NAME";
96             break;
97         case SIM_FUNCTION_API:
98             os << "SIM_FUNCTION_API";
99             break;
100         case SIM_SCHEDULE:
101             os << "SIM_SCHEDULE";
102             break;
103         case SIM_BLOCKTYPE:
104             os << "SIM_BLOCKTYPE";
105             break;
106         case SIM_DEP_UT:
107             os << "SIM_DEP_UT";
108             break;
109         case ANGLE:
110             os << "ANGLE";
111             break;
112         case EXPRS:
113             os << "EXPRS";
114             break;
115         case INPUTS:
116             os << "INPUTS";
117             break;
118         case OUTPUTS:
119             os << "OUTPUTS";
120             break;
121         case EVENT_INPUTS:
122             os << "EVENT_INPUTS";
123             break;
124         case EVENT_OUTPUTS:
125             os << "EVENT_OUTPUTS";
126             break;
127         case STATE:
128             os << "STATE";
129             break;
130         case DSTATE:
131             os << "DSTATE";
132             break;
133         case ODSTATE:
134             os << "ODSTATE";
135             break;
136         case NZCROSS:
137             os << "NZCROSS";
138             break;
139         case NMODE:
140             os << "NMODE";
141             break;;
142         case RPAR:
143             os << "RPAR";
144             break;
145         case IPAR:
146             os << "IPAR";
147             break;
148         case OPAR:
149             os << "OPAR";
150             break;
151         case EQUATIONS:
152             os << "EQUATIONS";
153             break;
154         case UID:
155             os << "UID";
156             break;
157         case PARENT_BLOCK:
158             os << "PARENT_BLOCK";
159             break;
160         case CHILDREN:
161             os << "CHILDREN";
162             break;
163         case PORT_REFERENCE:
164             os << "PORT_REFERENCE";
165             break;
166         case STYLE:
167             os << "STYLE";
168             break;
169         case LABEL:
170             os << "LABEL";
171             break;
172         case DESTINATION_PORT:
173             os << "DESTINATION_PORT";
174             break;
175         case SOURCE_PORT:
176             os << "SOURCE_PORT";
177             break;
178         case CONTROL_POINTS:
179             os << "CONTROL_POINTS";
180             break;
181         case DATATYPE:
182             os << "DATATYPE";
183             break;
184         case DATATYPE_ROWS:
185             os << "DATATYPE_ROWS";
186             break;
187         case DATATYPE_COLS:
188             os << "DATATYPE_COLS";
189             break;
190         case DATATYPE_TYPE:
191             os << "DATATYPE_TYPE";
192             break;
193         case FIRING:
194             os << "FIRING";
195             break;
196         case SOURCE_BLOCK:
197             os << "SOURCE_BLOCK";
198             break;
199         case PORT_KIND:
200             os << "PORT_KIND";
201             break;
202         case IMPLICIT:
203             os << "IMPLICIT";
204             break;
205         case PORT_NUMBER:
206             os << "PORT_NUMBER";
207             break;
208         case CONNECTED_SIGNALS:
209             os << "CONNECTED_SIGNALS";
210             break;
211     }
212     return os;
213 }
214
215 static const bool USE_SCILAB_WRITE = true;
216
217 void LoggerView::objectCreated(const ScicosID& uid, kind_t k)
218 {
219     std::stringstream ss;
220
221     ss << __FUNCTION__ << "( " << uid << " , " << k << " )" << std::endl;
222
223     if (USE_SCILAB_WRITE)
224     {
225         scilabForcedWrite(ss.str().data());
226     }
227     else
228     {
229         std::cerr << ss.str();
230     }
231 }
232
233 void LoggerView::objectDeleted(const ScicosID& uid)
234 {
235     std::stringstream ss;
236
237     ss << __FUNCTION__ << "( " << uid << " )" << std::endl;
238
239     if (USE_SCILAB_WRITE)
240     {
241         scilabForcedWrite(ss.str().data());
242     }
243     else
244     {
245         std::cerr << ss.str();
246     }
247 }
248
249 void LoggerView::objectUpdated(const ScicosID& uid, kind_t k)
250 {
251     std::stringstream ss;
252
253     ss << __FUNCTION__ << "( " << uid << " , " << k << " )" << std::endl;
254
255     if (USE_SCILAB_WRITE)
256     {
257         scilabForcedWrite(ss.str().data());
258     }
259     else
260     {
261         std::cerr << ss.str();
262     }
263 }
264
265 void LoggerView::propertyUpdated(const ScicosID& uid, kind_t k, object_properties_t p)
266 {
267     // do not log anything on success; the message has already been logged
268 }
269
270 void LoggerView::propertyUpdated(const ScicosID& uid, kind_t k, object_properties_t p,
271                                  update_status_t u)
272 {
273     std::stringstream ss;
274
275     ss << __FUNCTION__ << "( " << uid << " , " << k << " , " << p << " ) : " << u << std::endl;
276
277     if (USE_SCILAB_WRITE)
278     {
279         scilabForcedWrite(ss.str().data());
280     }
281     else
282     {
283         std::cerr << ss.str();
284     }
285 }
286
287 } /* namespace org_scilab_modules_scicos */