a636d40a4a10f1c7b9625312bc1bf0574dc5c809
[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.1-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 THICK:
182             os << "THICK";
183             break;
184         case COLOR:
185             os << "COLOR";
186             break;
187         case KIND:
188             os << "KIND";
189             break;
190         case FROM:
191             os << "FROM";
192             break;
193         case TO:
194             os << "TO";
195             break;
196         case DATATYPE:
197             os << "DATATYPE";
198             break;
199         case DATATYPE_ROWS:
200             os << "DATATYPE_ROWS";
201             break;
202         case DATATYPE_COLS:
203             os << "DATATYPE_COLS";
204             break;
205         case DATATYPE_TYPE:
206             os << "DATATYPE_TYPE";
207             break;
208         case FIRING:
209             os << "FIRING";
210             break;
211         case SOURCE_BLOCK:
212             os << "SOURCE_BLOCK";
213             break;
214         case PORT_KIND:
215             os << "PORT_KIND";
216             break;
217         case IMPLICIT:
218             os << "IMPLICIT";
219             break;
220         case PORT_NUMBER:
221             os << "PORT_NUMBER";
222             break;
223         case CONNECTED_SIGNALS:
224             os << "CONNECTED_SIGNALS";
225             break;
226         case TITLE:
227             os << "TITLE";
228             break;
229         case PATH:
230             os << "PATH";
231             break;
232         case PROPERTIES:
233             os << "PROPERTIES";
234             break;
235         case CONTEXT:
236             os << "CONTEXT";
237             break;
238     }
239     return os;
240 }
241
242 static const bool USE_SCILAB_WRITE = true;
243
244 void LoggerView::objectCreated(const ScicosID& uid, kind_t k)
245 {
246     std::stringstream ss;
247
248     ss << __FUNCTION__ << "( " << uid << " , " << k << " )" << std::endl;
249
250     if (USE_SCILAB_WRITE)
251     {
252         scilabForcedWrite(ss.str().data());
253     }
254     else
255     {
256         std::cerr << ss.str();
257     }
258 }
259
260 void LoggerView::objectDeleted(const ScicosID& uid)
261 {
262     std::stringstream ss;
263
264     ss << __FUNCTION__ << "( " << uid << " )" << std::endl;
265
266     if (USE_SCILAB_WRITE)
267     {
268         scilabForcedWrite(ss.str().data());
269     }
270     else
271     {
272         std::cerr << ss.str();
273     }
274 }
275
276 void LoggerView::objectUpdated(const ScicosID& uid, kind_t k)
277 {
278     std::stringstream ss;
279
280     ss << __FUNCTION__ << "( " << uid << " , " << k << " )" << std::endl;
281
282     if (USE_SCILAB_WRITE)
283     {
284         scilabForcedWrite(ss.str().data());
285     }
286     else
287     {
288         std::cerr << ss.str();
289     }
290 }
291
292 void LoggerView::propertyUpdated(const ScicosID& uid, kind_t k, object_properties_t p)
293 {
294     // do not log anything on success; the message has already been logged
295 }
296
297 void LoggerView::propertyUpdated(const ScicosID& uid, kind_t k, object_properties_t p,
298                                  update_status_t u)
299 {
300     std::stringstream ss;
301
302     ss << __FUNCTION__ << "( " << uid << " , " << k << " , " << p << " ) : " << u << std::endl;
303
304     if (USE_SCILAB_WRITE)
305     {
306         scilabForcedWrite(ss.str().data());
307     }
308     else
309     {
310         std::cerr << ss.str();
311     }
312 }
313
314 } /* namespace org_scilab_modules_scicos */