source: XIOS/trunk/src/interface/c/iccalendar_wrapper.cpp @ 591

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

Remove leftovers from the XMLIO age.

File size: 4.4 KB
Line 
1/* ************************************************************************** *
2 *      Copyright © IPSL/LSCE, xios, Avril 2010 - Octobre 2011         *
3 * ************************************************************************** */
4
5#include <boost/multi_array.hpp>
6#include <boost/shared_ptr.hpp>
7
8#include "xios.hpp"
9
10#include "attribute_template.hpp"
11#include "object_template.hpp"
12#include "group_template.hpp"
13
14#include "icutil.hpp"
15#include "icdate.hpp"
16#include "timer.hpp"
17#include "calendar_wrapper.hpp"
18
19extern "C"
20{
21// /////////////////////////////// Définitions ////////////////////////////// //
22
23  // ----------------------- Redéfinition de type ----------------------------
24
25  typedef xios::CCalendarWrapper *XCalendarWrapperPtr;
26
27  // ------------------------ Création des handle -----------------------------
28
29  void cxios_calendar_wrapper_handle_create(XCalendarWrapperPtr* _ret, const char* _id, int _id_len)
30  {
31    std::string id;
32    if (!cstr2string(_id, _id_len, id)) return;
33    CTimer::get("XIOS").resume();
34    *_ret = CCalendarWrapper::get(id);
35    CTimer::get("XIOS").suspend();
36  }
37
38  void cxios_get_current_calendar_wrapper(XCalendarWrapperPtr* _ret)
39  {
40    CTimer::get("XIOS").resume();
41    *_ret = CCalendarWrapper::get(CCalendarWrapper::GetDefName());
42    CTimer::get("XIOS").suspend();
43  }
44
45  // -------------------- Vérification des identifiants -----------------------
46
47  void cxios_calendar_wrapper_valid_id(bool* _ret, const char* _id, int _id_len)
48  {
49    std::string id;
50    if (!cstr2string(_id, _id_len, id)) return;
51    CTimer::get("XIOS").resume();
52    *_ret = CCalendarWrapper::has(id);
53    CTimer::get("XIOS").suspend();
54  }
55
56  // ----------------------- Custom getters and setters -----------------------
57
58  void cxios_set_calendar_wrapper_date_start_date(XCalendarWrapperPtr calendarWrapper_hdl, cxios_date start_date_c)
59  {
60    CTimer::get("XIOS").resume();
61    CDate start_date(*calendarWrapper_hdl->getCalendar(true),
62                     start_date_c.year,
63                     start_date_c.month,
64                     start_date_c.day,
65                     start_date_c.hour,
66                     start_date_c.minute,
67                     start_date_c.second);
68    calendarWrapper_hdl->setInitDate(start_date);
69    CTimer::get("XIOS").suspend();
70  }
71
72  void cxios_get_calendar_wrapper_date_start_date(XCalendarWrapperPtr calendarWrapper_hdl, cxios_date* start_date_c)
73  {
74    CTimer::get("XIOS").resume();
75    const CDate& start_date = calendarWrapper_hdl->getInitDate();
76    start_date_c->year = start_date.getYear();
77    start_date_c->month = start_date.getMonth();
78    start_date_c->day = start_date.getDay();
79    start_date_c->hour = start_date.getHour();
80    start_date_c->minute = start_date.getMinute();
81    start_date_c->second = start_date.getSecond();
82    CTimer::get("XIOS").suspend();
83  }
84
85  void cxios_set_calendar_wrapper_date_time_origin(XCalendarWrapperPtr calendarWrapper_hdl, cxios_date time_origin_c)
86  {
87    CTimer::get("XIOS").resume();
88    CDate time_origin(*calendarWrapper_hdl->getCalendar(true),
89                      time_origin_c.year,
90                      time_origin_c.month,
91                      time_origin_c.day,
92                      time_origin_c.hour,
93                      time_origin_c.minute,
94                      time_origin_c.second);
95    calendarWrapper_hdl->setTimeOrigin(time_origin);
96    CTimer::get("XIOS").suspend();
97  }
98
99  void cxios_get_calendar_wrapper_date_time_origin(XCalendarWrapperPtr calendarWrapper_hdl, cxios_date* time_origin_c)
100  {
101    CTimer::get("XIOS").resume();
102    const CDate& time_origin = calendarWrapper_hdl->getTimeOrigin();
103    time_origin_c->year = time_origin.getYear();
104    time_origin_c->month = time_origin.getMonth();
105    time_origin_c->day = time_origin.getDay();
106    time_origin_c->hour = time_origin.getHour();
107    time_origin_c->minute = time_origin.getMinute();
108    time_origin_c->second = time_origin.getSecond();
109    CTimer::get("XIOS").suspend();
110  }
111
112  // ----------------------- Calendar creation and update ----------------------
113
114  void cxios_create_calendar(XCalendarWrapperPtr calendarWrapper_hdl)
115  {
116    CTimer::get("XIOS").resume();
117    calendarWrapper_hdl->createCalendar();
118    CTimer::get("XIOS").suspend();
119  }
120
121  void cxios_update_calendar_timestep(XCalendarWrapperPtr calendarWrapper_hdl)
122  {
123    CTimer::get("XIOS").resume();
124    calendarWrapper_hdl->updateTimestep();
125    CTimer::get("XIOS").suspend();
126  }
127} // extern "C"
Note: See TracBrowser for help on using the repository browser.