source: XIOS/trunk/src/interface/c_attr/icfield_attr.cpp @ 464

Last change on this file since 464 was 464, checked in by ymipsl, 10 years ago

Enhancement : Add scale_factor and add_offset attribute to field output
Operation (field-add_offset)/scale_factor would be computed before output write.
If field attribute prec=2 the field would be rounded to nearest integer value and output as short int (2 bytes).

YM

  • Property svn:eol-style set to native
File size: 15.8 KB
Line 
1/* ************************************************************************** *
2 *               Interface auto generated - do not modify                   *
3 * ************************************************************************** */
4
5#include <boost/multi_array.hpp>
6#include <boost/shared_ptr.hpp>
7#include "xmlioserver.hpp"
8#include "attribute_template.hpp"
9#include "object_template.hpp"
10#include "group_template.hpp"
11#include "icutil.hpp"
12#include "timer.hpp"
13#include "node_type.hpp"
14
15extern "C"
16{
17  typedef xios::CField*  field_Ptr;
18 
19  void cxios_set_field_add_offset(field_Ptr field_hdl, double add_offset)
20  {
21     CTimer::get("XIOS").resume();
22    field_hdl->add_offset.setValue(add_offset);
23    field_hdl->sendAttributToServer(field_hdl->add_offset);
24     CTimer::get("XIOS").suspend();
25  }
26 
27  void cxios_get_field_add_offset(field_Ptr field_hdl, double* add_offset)
28  {
29    *add_offset = field_hdl->add_offset.getInheritedValue();
30  }
31 
32  bool cxios_is_defined_field_add_offset(field_Ptr field_hdl )
33  {
34     CTimer::get("XIOS").resume();
35    return field_hdl->add_offset.hasInheritedValue();
36     CTimer::get("XIOS").suspend();
37  }
38 
39 
40 
41  void cxios_set_field_axis_ref(field_Ptr field_hdl, const char * axis_ref, int axis_ref_size)
42  {
43    std::string axis_ref_str;
44    if(!cstr2string(axis_ref, axis_ref_size, axis_ref_str)) return;
45     CTimer::get("XIOS").resume();
46    field_hdl->axis_ref.setValue(axis_ref_str);
47    field_hdl->sendAttributToServer(field_hdl->axis_ref);
48     CTimer::get("XIOS").suspend();
49  }
50 
51  void cxios_get_field_axis_ref(field_Ptr field_hdl, char * axis_ref, int axis_ref_size)
52  {
53     CTimer::get("XIOS").resume();
54    if(!string_copy(field_hdl->axis_ref.getInheritedValue(),axis_ref , axis_ref_size))
55      ERROR("void cxios_get_field_axis_ref(field_Ptr field_hdl, char * axis_ref, int axis_ref_size)", <<"Input string is to short");
56     CTimer::get("XIOS").suspend();
57  }
58 
59  bool cxios_is_defined_field_axis_ref(field_Ptr field_hdl )
60  {
61     CTimer::get("XIOS").resume();
62    return field_hdl->axis_ref.hasInheritedValue();
63     CTimer::get("XIOS").suspend();
64  }
65 
66 
67 
68  void cxios_set_field_default_value(field_Ptr field_hdl, double default_value)
69  {
70     CTimer::get("XIOS").resume();
71    field_hdl->default_value.setValue(default_value);
72    field_hdl->sendAttributToServer(field_hdl->default_value);
73     CTimer::get("XIOS").suspend();
74  }
75 
76  void cxios_get_field_default_value(field_Ptr field_hdl, double* default_value)
77  {
78    *default_value = field_hdl->default_value.getInheritedValue();
79  }
80 
81  bool cxios_is_defined_field_default_value(field_Ptr field_hdl )
82  {
83     CTimer::get("XIOS").resume();
84    return field_hdl->default_value.hasInheritedValue();
85     CTimer::get("XIOS").suspend();
86  }
87 
88 
89 
90  void cxios_set_field_domain_ref(field_Ptr field_hdl, const char * domain_ref, int domain_ref_size)
91  {
92    std::string domain_ref_str;
93    if(!cstr2string(domain_ref, domain_ref_size, domain_ref_str)) return;
94     CTimer::get("XIOS").resume();
95    field_hdl->domain_ref.setValue(domain_ref_str);
96    field_hdl->sendAttributToServer(field_hdl->domain_ref);
97     CTimer::get("XIOS").suspend();
98  }
99 
100  void cxios_get_field_domain_ref(field_Ptr field_hdl, char * domain_ref, int domain_ref_size)
101  {
102     CTimer::get("XIOS").resume();
103    if(!string_copy(field_hdl->domain_ref.getInheritedValue(),domain_ref , domain_ref_size))
104      ERROR("void cxios_get_field_domain_ref(field_Ptr field_hdl, char * domain_ref, int domain_ref_size)", <<"Input string is to short");
105     CTimer::get("XIOS").suspend();
106  }
107 
108  bool cxios_is_defined_field_domain_ref(field_Ptr field_hdl )
109  {
110     CTimer::get("XIOS").resume();
111    return field_hdl->domain_ref.hasInheritedValue();
112     CTimer::get("XIOS").suspend();
113  }
114 
115 
116 
117  void cxios_set_field_enabled(field_Ptr field_hdl, bool enabled)
118  {
119     CTimer::get("XIOS").resume();
120    field_hdl->enabled.setValue(enabled);
121    field_hdl->sendAttributToServer(field_hdl->enabled);
122     CTimer::get("XIOS").suspend();
123  }
124 
125  void cxios_get_field_enabled(field_Ptr field_hdl, bool* enabled)
126  {
127    *enabled = field_hdl->enabled.getInheritedValue();
128  }
129 
130  bool cxios_is_defined_field_enabled(field_Ptr field_hdl )
131  {
132     CTimer::get("XIOS").resume();
133    return field_hdl->enabled.hasInheritedValue();
134     CTimer::get("XIOS").suspend();
135  }
136 
137 
138 
139  void cxios_set_field_field_ref(field_Ptr field_hdl, const char * field_ref, int field_ref_size)
140  {
141    std::string field_ref_str;
142    if(!cstr2string(field_ref, field_ref_size, field_ref_str)) return;
143     CTimer::get("XIOS").resume();
144    field_hdl->field_ref.setValue(field_ref_str);
145    field_hdl->sendAttributToServer(field_hdl->field_ref);
146     CTimer::get("XIOS").suspend();
147  }
148 
149  void cxios_get_field_field_ref(field_Ptr field_hdl, char * field_ref, int field_ref_size)
150  {
151     CTimer::get("XIOS").resume();
152    if(!string_copy(field_hdl->field_ref.getInheritedValue(),field_ref , field_ref_size))
153      ERROR("void cxios_get_field_field_ref(field_Ptr field_hdl, char * field_ref, int field_ref_size)", <<"Input string is to short");
154     CTimer::get("XIOS").suspend();
155  }
156 
157  bool cxios_is_defined_field_field_ref(field_Ptr field_hdl )
158  {
159     CTimer::get("XIOS").resume();
160    return field_hdl->field_ref.hasInheritedValue();
161     CTimer::get("XIOS").suspend();
162  }
163 
164 
165 
166  void cxios_set_field_freq_offset(field_Ptr field_hdl, const char * freq_offset, int freq_offset_size)
167  {
168    std::string freq_offset_str;
169    if(!cstr2string(freq_offset, freq_offset_size, freq_offset_str)) return;
170     CTimer::get("XIOS").resume();
171    field_hdl->freq_offset.setValue(freq_offset_str);
172    field_hdl->sendAttributToServer(field_hdl->freq_offset);
173     CTimer::get("XIOS").suspend();
174  }
175 
176  void cxios_get_field_freq_offset(field_Ptr field_hdl, char * freq_offset, int freq_offset_size)
177  {
178     CTimer::get("XIOS").resume();
179    if(!string_copy(field_hdl->freq_offset.getInheritedValue(),freq_offset , freq_offset_size))
180      ERROR("void cxios_get_field_freq_offset(field_Ptr field_hdl, char * freq_offset, int freq_offset_size)", <<"Input string is to short");
181     CTimer::get("XIOS").suspend();
182  }
183 
184  bool cxios_is_defined_field_freq_offset(field_Ptr field_hdl )
185  {
186     CTimer::get("XIOS").resume();
187    return field_hdl->freq_offset.hasInheritedValue();
188     CTimer::get("XIOS").suspend();
189  }
190 
191 
192 
193  void cxios_set_field_freq_op(field_Ptr field_hdl, const char * freq_op, int freq_op_size)
194  {
195    std::string freq_op_str;
196    if(!cstr2string(freq_op, freq_op_size, freq_op_str)) return;
197     CTimer::get("XIOS").resume();
198    field_hdl->freq_op.setValue(freq_op_str);
199    field_hdl->sendAttributToServer(field_hdl->freq_op);
200     CTimer::get("XIOS").suspend();
201  }
202 
203  void cxios_get_field_freq_op(field_Ptr field_hdl, char * freq_op, int freq_op_size)
204  {
205     CTimer::get("XIOS").resume();
206    if(!string_copy(field_hdl->freq_op.getInheritedValue(),freq_op , freq_op_size))
207      ERROR("void cxios_get_field_freq_op(field_Ptr field_hdl, char * freq_op, int freq_op_size)", <<"Input string is to short");
208     CTimer::get("XIOS").suspend();
209  }
210 
211  bool cxios_is_defined_field_freq_op(field_Ptr field_hdl )
212  {
213     CTimer::get("XIOS").resume();
214    return field_hdl->freq_op.hasInheritedValue();
215     CTimer::get("XIOS").suspend();
216  }
217 
218 
219 
220  void cxios_set_field_grid_ref(field_Ptr field_hdl, const char * grid_ref, int grid_ref_size)
221  {
222    std::string grid_ref_str;
223    if(!cstr2string(grid_ref, grid_ref_size, grid_ref_str)) return;
224     CTimer::get("XIOS").resume();
225    field_hdl->grid_ref.setValue(grid_ref_str);
226    field_hdl->sendAttributToServer(field_hdl->grid_ref);
227     CTimer::get("XIOS").suspend();
228  }
229 
230  void cxios_get_field_grid_ref(field_Ptr field_hdl, char * grid_ref, int grid_ref_size)
231  {
232     CTimer::get("XIOS").resume();
233    if(!string_copy(field_hdl->grid_ref.getInheritedValue(),grid_ref , grid_ref_size))
234      ERROR("void cxios_get_field_grid_ref(field_Ptr field_hdl, char * grid_ref, int grid_ref_size)", <<"Input string is to short");
235     CTimer::get("XIOS").suspend();
236  }
237 
238  bool cxios_is_defined_field_grid_ref(field_Ptr field_hdl )
239  {
240     CTimer::get("XIOS").resume();
241    return field_hdl->grid_ref.hasInheritedValue();
242     CTimer::get("XIOS").suspend();
243  }
244 
245 
246 
247  void cxios_set_field_level(field_Ptr field_hdl, int level)
248  {
249     CTimer::get("XIOS").resume();
250    field_hdl->level.setValue(level);
251    field_hdl->sendAttributToServer(field_hdl->level);
252     CTimer::get("XIOS").suspend();
253  }
254 
255  void cxios_get_field_level(field_Ptr field_hdl, int* level)
256  {
257    *level = field_hdl->level.getInheritedValue();
258  }
259 
260  bool cxios_is_defined_field_level(field_Ptr field_hdl )
261  {
262     CTimer::get("XIOS").resume();
263    return field_hdl->level.hasInheritedValue();
264     CTimer::get("XIOS").suspend();
265  }
266 
267 
268 
269  void cxios_set_field_long_name(field_Ptr field_hdl, const char * long_name, int long_name_size)
270  {
271    std::string long_name_str;
272    if(!cstr2string(long_name, long_name_size, long_name_str)) return;
273     CTimer::get("XIOS").resume();
274    field_hdl->long_name.setValue(long_name_str);
275    field_hdl->sendAttributToServer(field_hdl->long_name);
276     CTimer::get("XIOS").suspend();
277  }
278 
279  void cxios_get_field_long_name(field_Ptr field_hdl, char * long_name, int long_name_size)
280  {
281     CTimer::get("XIOS").resume();
282    if(!string_copy(field_hdl->long_name.getInheritedValue(),long_name , long_name_size))
283      ERROR("void cxios_get_field_long_name(field_Ptr field_hdl, char * long_name, int long_name_size)", <<"Input string is to short");
284     CTimer::get("XIOS").suspend();
285  }
286 
287  bool cxios_is_defined_field_long_name(field_Ptr field_hdl )
288  {
289     CTimer::get("XIOS").resume();
290    return field_hdl->long_name.hasInheritedValue();
291     CTimer::get("XIOS").suspend();
292  }
293 
294 
295 
296  void cxios_set_field_name(field_Ptr field_hdl, const char * name, int name_size)
297  {
298    std::string name_str;
299    if(!cstr2string(name, name_size, name_str)) return;
300     CTimer::get("XIOS").resume();
301    field_hdl->name.setValue(name_str);
302    field_hdl->sendAttributToServer(field_hdl->name);
303     CTimer::get("XIOS").suspend();
304  }
305 
306  void cxios_get_field_name(field_Ptr field_hdl, char * name, int name_size)
307  {
308     CTimer::get("XIOS").resume();
309    if(!string_copy(field_hdl->name.getInheritedValue(),name , name_size))
310      ERROR("void cxios_get_field_name(field_Ptr field_hdl, char * name, int name_size)", <<"Input string is to short");
311     CTimer::get("XIOS").suspend();
312  }
313 
314  bool cxios_is_defined_field_name(field_Ptr field_hdl )
315  {
316     CTimer::get("XIOS").resume();
317    return field_hdl->name.hasInheritedValue();
318     CTimer::get("XIOS").suspend();
319  }
320 
321 
322 
323  void cxios_set_field_operation(field_Ptr field_hdl, const char * operation, int operation_size)
324  {
325    std::string operation_str;
326    if(!cstr2string(operation, operation_size, operation_str)) return;
327     CTimer::get("XIOS").resume();
328    field_hdl->operation.setValue(operation_str);
329    field_hdl->sendAttributToServer(field_hdl->operation);
330     CTimer::get("XIOS").suspend();
331  }
332 
333  void cxios_get_field_operation(field_Ptr field_hdl, char * operation, int operation_size)
334  {
335     CTimer::get("XIOS").resume();
336    if(!string_copy(field_hdl->operation.getInheritedValue(),operation , operation_size))
337      ERROR("void cxios_get_field_operation(field_Ptr field_hdl, char * operation, int operation_size)", <<"Input string is to short");
338     CTimer::get("XIOS").suspend();
339  }
340 
341  bool cxios_is_defined_field_operation(field_Ptr field_hdl )
342  {
343     CTimer::get("XIOS").resume();
344    return field_hdl->operation.hasInheritedValue();
345     CTimer::get("XIOS").suspend();
346  }
347 
348 
349 
350  void cxios_set_field_prec(field_Ptr field_hdl, int prec)
351  {
352     CTimer::get("XIOS").resume();
353    field_hdl->prec.setValue(prec);
354    field_hdl->sendAttributToServer(field_hdl->prec);
355     CTimer::get("XIOS").suspend();
356  }
357 
358  void cxios_get_field_prec(field_Ptr field_hdl, int* prec)
359  {
360    *prec = field_hdl->prec.getInheritedValue();
361  }
362 
363  bool cxios_is_defined_field_prec(field_Ptr field_hdl )
364  {
365     CTimer::get("XIOS").resume();
366    return field_hdl->prec.hasInheritedValue();
367     CTimer::get("XIOS").suspend();
368  }
369 
370 
371 
372  void cxios_set_field_scale_factor(field_Ptr field_hdl, double scale_factor)
373  {
374     CTimer::get("XIOS").resume();
375    field_hdl->scale_factor.setValue(scale_factor);
376    field_hdl->sendAttributToServer(field_hdl->scale_factor);
377     CTimer::get("XIOS").suspend();
378  }
379 
380  void cxios_get_field_scale_factor(field_Ptr field_hdl, double* scale_factor)
381  {
382    *scale_factor = field_hdl->scale_factor.getInheritedValue();
383  }
384 
385  bool cxios_is_defined_field_scale_factor(field_Ptr field_hdl )
386  {
387     CTimer::get("XIOS").resume();
388    return field_hdl->scale_factor.hasInheritedValue();
389     CTimer::get("XIOS").suspend();
390  }
391 
392 
393 
394  void cxios_set_field_standard_name(field_Ptr field_hdl, const char * standard_name, int standard_name_size)
395  {
396    std::string standard_name_str;
397    if(!cstr2string(standard_name, standard_name_size, standard_name_str)) return;
398     CTimer::get("XIOS").resume();
399    field_hdl->standard_name.setValue(standard_name_str);
400    field_hdl->sendAttributToServer(field_hdl->standard_name);
401     CTimer::get("XIOS").suspend();
402  }
403 
404  void cxios_get_field_standard_name(field_Ptr field_hdl, char * standard_name, int standard_name_size)
405  {
406     CTimer::get("XIOS").resume();
407    if(!string_copy(field_hdl->standard_name.getInheritedValue(),standard_name , standard_name_size))
408      ERROR("void cxios_get_field_standard_name(field_Ptr field_hdl, char * standard_name, int standard_name_size)", <<"Input string is to short");
409     CTimer::get("XIOS").suspend();
410  }
411 
412  bool cxios_is_defined_field_standard_name(field_Ptr field_hdl )
413  {
414     CTimer::get("XIOS").resume();
415    return field_hdl->standard_name.hasInheritedValue();
416     CTimer::get("XIOS").suspend();
417  }
418 
419 
420 
421  void cxios_set_field_unit(field_Ptr field_hdl, const char * unit, int unit_size)
422  {
423    std::string unit_str;
424    if(!cstr2string(unit, unit_size, unit_str)) return;
425     CTimer::get("XIOS").resume();
426    field_hdl->unit.setValue(unit_str);
427    field_hdl->sendAttributToServer(field_hdl->unit);
428     CTimer::get("XIOS").suspend();
429  }
430 
431  void cxios_get_field_unit(field_Ptr field_hdl, char * unit, int unit_size)
432  {
433     CTimer::get("XIOS").resume();
434    if(!string_copy(field_hdl->unit.getInheritedValue(),unit , unit_size))
435      ERROR("void cxios_get_field_unit(field_Ptr field_hdl, char * unit, int unit_size)", <<"Input string is to short");
436     CTimer::get("XIOS").suspend();
437  }
438 
439  bool cxios_is_defined_field_unit(field_Ptr field_hdl )
440  {
441     CTimer::get("XIOS").resume();
442    return field_hdl->unit.hasInheritedValue();
443     CTimer::get("XIOS").suspend();
444  }
445 
446 
447 
448  void cxios_set_field_valid_max(field_Ptr field_hdl, double valid_max)
449  {
450     CTimer::get("XIOS").resume();
451    field_hdl->valid_max.setValue(valid_max);
452    field_hdl->sendAttributToServer(field_hdl->valid_max);
453     CTimer::get("XIOS").suspend();
454  }
455 
456  void cxios_get_field_valid_max(field_Ptr field_hdl, double* valid_max)
457  {
458    *valid_max = field_hdl->valid_max.getInheritedValue();
459  }
460 
461  bool cxios_is_defined_field_valid_max(field_Ptr field_hdl )
462  {
463     CTimer::get("XIOS").resume();
464    return field_hdl->valid_max.hasInheritedValue();
465     CTimer::get("XIOS").suspend();
466  }
467 
468 
469 
470  void cxios_set_field_valid_min(field_Ptr field_hdl, double valid_min)
471  {
472     CTimer::get("XIOS").resume();
473    field_hdl->valid_min.setValue(valid_min);
474    field_hdl->sendAttributToServer(field_hdl->valid_min);
475     CTimer::get("XIOS").suspend();
476  }
477 
478  void cxios_get_field_valid_min(field_Ptr field_hdl, double* valid_min)
479  {
480    *valid_min = field_hdl->valid_min.getInheritedValue();
481  }
482 
483  bool cxios_is_defined_field_valid_min(field_Ptr field_hdl )
484  {
485     CTimer::get("XIOS").resume();
486    return field_hdl->valid_min.hasInheritedValue();
487     CTimer::get("XIOS").suspend();
488  }
489 
490 
491 
492 
493}
Note: See TracBrowser for help on using the repository browser.