source: XIOS/trunk/src/interface/c_attr/iccontext_attr.cpp @ 537

Last change on this file since 537 was 537, checked in by rlacroix, 9 years ago

Add a new attribute type for durations and use it for the context's timestep.

Note that the "xios_time" type and the "xios_set_timestep" procedure have been removed from the Fortran interface. Instead, the "xios_duration" type and the "xios_get_context_attr"/"xios_set_context_attr" procedures should now be used to get/set the timestep.

  • Property copyright set to
    Software name : XIOS (Xml I/O Server)
    http://forge.ipsl.jussieu.fr/ioserver
    Creation date : January 2009
    Licence : CeCCIL version2
    see license file in root directory : Licence_CeCILL_V2-en.txt
    or http://www.cecill.info/licences/Licence_CeCILL_V2-en.html
    Holder : CEA/LSCE (Laboratoire des Sciences du CLimat et de l'Environnement)
    CNRS/IPSL (Institut Pierre Simon Laplace)
    Project Manager : Yann Meurdesoif
    yann.meurdesoif@cea.fr
  • Property svn:eol-style set to native
File size: 6.4 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 "icdate.hpp"
13#include "timer.hpp"
14#include "node_type.hpp"
15
16extern "C"
17{
18  typedef xios::CContext*  context_Ptr;
19 
20  void cxios_set_context_calendar_type(context_Ptr context_hdl, const char * calendar_type, int calendar_type_size)
21  {
22    std::string calendar_type_str;
23    if(!cstr2string(calendar_type, calendar_type_size, calendar_type_str)) return;
24     CTimer::get("XIOS").resume();
25    context_hdl->calendar_type.fromString(calendar_type_str);
26     CTimer::get("XIOS").suspend();
27  }
28 
29  void cxios_get_context_calendar_type(context_Ptr context_hdl, char * calendar_type, int calendar_type_size)
30  {
31     CTimer::get("XIOS").resume();
32    if(!string_copy(context_hdl->calendar_type.getInheritedStringValue(),calendar_type , calendar_type_size))
33      ERROR("void cxios_get_context_calendar_type(context_Ptr context_hdl, char * calendar_type, int calendar_type_size)", <<"Input string is to short");
34     CTimer::get("XIOS").suspend();
35  }
36 
37  bool cxios_is_defined_context_calendar_type(context_Ptr context_hdl )
38  {
39     CTimer::get("XIOS").resume();
40    return context_hdl->calendar_type.hasInheritedValue();
41     CTimer::get("XIOS").suspend();
42  }
43 
44 
45 
46  void cxios_set_context_output_dir(context_Ptr context_hdl, const char * output_dir, int output_dir_size)
47  {
48    std::string output_dir_str;
49    if(!cstr2string(output_dir, output_dir_size, output_dir_str)) return;
50     CTimer::get("XIOS").resume();
51    context_hdl->output_dir.setValue(output_dir_str);
52     CTimer::get("XIOS").suspend();
53  }
54 
55  void cxios_get_context_output_dir(context_Ptr context_hdl, char * output_dir, int output_dir_size)
56  {
57     CTimer::get("XIOS").resume();
58    if(!string_copy(context_hdl->output_dir.getInheritedValue(),output_dir , output_dir_size))
59      ERROR("void cxios_get_context_output_dir(context_Ptr context_hdl, char * output_dir, int output_dir_size)", <<"Input string is to short");
60     CTimer::get("XIOS").suspend();
61  }
62 
63  bool cxios_is_defined_context_output_dir(context_Ptr context_hdl )
64  {
65     CTimer::get("XIOS").resume();
66    return context_hdl->output_dir.hasInheritedValue();
67     CTimer::get("XIOS").suspend();
68  }
69 
70 
71 
72  void cxios_set_context_start_date(context_Ptr context_hdl, cxios_date start_date_c)
73  {
74    CTimer::get("XIOS").resume();
75    context_hdl->start_date.allocate();
76    CDate& start_date = context_hdl->start_date.get();
77    start_date.setDate(start_date_c.year,
78                           start_date_c.month,
79                           start_date_c.day,
80                           start_date_c.hour,
81                           start_date_c.minute,
82                           start_date_c.second);
83    if (start_date.hasRelCalendar())
84      start_date.checkDate();
85    CTimer::get("XIOS").suspend();
86  }
87 
88  void cxios_get_context_start_date(context_Ptr context_hdl, cxios_date* start_date_c)
89  {
90    CTimer::get("XIOS").resume();
91    CDate start_date = context_hdl->start_date.getInheritedValue();
92    start_date_c->year = start_date.getYear();
93    start_date_c->month = start_date.getMonth();
94    start_date_c->day = start_date.getDay();
95    start_date_c->hour = start_date.getHour();
96    start_date_c->minute = start_date.getMinute();
97    start_date_c->second = start_date.getSecond();
98    CTimer::get("XIOS").suspend();
99  }
100 
101  bool cxios_is_defined_context_start_date(context_Ptr context_hdl )
102  {
103     CTimer::get("XIOS").resume();
104    return context_hdl->start_date.hasInheritedValue();
105     CTimer::get("XIOS").suspend();
106  }
107 
108 
109 
110  void cxios_set_context_time_origin(context_Ptr context_hdl, cxios_date time_origin_c)
111  {
112    CTimer::get("XIOS").resume();
113    context_hdl->time_origin.allocate();
114    CDate& time_origin = context_hdl->time_origin.get();
115    time_origin.setDate(time_origin_c.year,
116                           time_origin_c.month,
117                           time_origin_c.day,
118                           time_origin_c.hour,
119                           time_origin_c.minute,
120                           time_origin_c.second);
121    if (time_origin.hasRelCalendar())
122      time_origin.checkDate();
123    CTimer::get("XIOS").suspend();
124  }
125 
126  void cxios_get_context_time_origin(context_Ptr context_hdl, cxios_date* time_origin_c)
127  {
128    CTimer::get("XIOS").resume();
129    CDate time_origin = context_hdl->time_origin.getInheritedValue();
130    time_origin_c->year = time_origin.getYear();
131    time_origin_c->month = time_origin.getMonth();
132    time_origin_c->day = time_origin.getDay();
133    time_origin_c->hour = time_origin.getHour();
134    time_origin_c->minute = time_origin.getMinute();
135    time_origin_c->second = time_origin.getSecond();
136    CTimer::get("XIOS").suspend();
137  }
138 
139  bool cxios_is_defined_context_time_origin(context_Ptr context_hdl )
140  {
141     CTimer::get("XIOS").resume();
142    return context_hdl->time_origin.hasInheritedValue();
143     CTimer::get("XIOS").suspend();
144  }
145 
146 
147 
148  void cxios_set_context_timestep(context_Ptr context_hdl, cxios_duration timestep_c)
149  {
150    CTimer::get("XIOS").resume();
151    context_hdl->timestep.allocate();
152    CDuration& timestep = context_hdl->timestep.get();
153    timestep.year = timestep_c.year;
154    timestep.month = timestep_c.month;
155    timestep.day = timestep_c.day;
156    timestep.hour = timestep_c.hour;
157    timestep.minute = timestep_c.minute;
158    timestep.second = timestep_c.second;
159    timestep.timestep = timestep_c.timestep;
160    CTimer::get("XIOS").suspend();
161  }
162 
163  void cxios_get_context_timestep(context_Ptr context_hdl, cxios_duration* timestep_c)
164  {
165    CTimer::get("XIOS").resume();
166    CDuration timestep = context_hdl->timestep.getInheritedValue();
167    timestep_c->year = timestep.year;
168    timestep_c->month = timestep.month;
169    timestep_c->day = timestep.day;
170    timestep_c->hour = timestep.hour;
171    timestep_c->minute = timestep.minute;
172    timestep_c->second = timestep.second;
173    timestep_c->timestep = timestep.timestep;
174    CTimer::get("XIOS").suspend();
175  }
176 
177  bool cxios_is_defined_context_timestep(context_Ptr context_hdl )
178  {
179     CTimer::get("XIOS").resume();
180    return context_hdl->timestep.hasInheritedValue();
181     CTimer::get("XIOS").suspend();
182  }
183 
184 
185 
186 
187}
Note: See TracBrowser for help on using the repository browser.