Changeset 134 for XMLIO_V2/dev/dev_rv/src/XMLIO/c_interface.cpp
- Timestamp:
- 10/15/10 11:16:12 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/dev_rv/src/XMLIO/c_interface.cpp
r133 r134 5 5 /* ********************************************************** */ 6 6 7 static inline std::string stringXtoStd( XString _str)7 static inline std::string stringXtoStd(const XString _str) 8 8 { 9 9 char * const temp = new char[_str.len+1](); … … 25 25 } 26 26 27 static inline Duration durationXtoXMLIO(const XDuration * const _xdur) // Non testée 28 { 29 Duration __dur= { _xdur->year, _xdur->month , _xdur->day, 30 _xdur->hour, _xdur->minute, _xdur->second }; 31 return (__dur); 32 } 33 27 34 /* ********************************************************** */ 28 35 /* HANDLE INTERFACE */ 29 36 /* ********************************************************** */ 30 37 31 void xios_handle_create_(XHandle * _ret, const XDType * const _dtype,XString _id)38 void xios_handle_create_(XHandle * const _ret, const XDType * const _dtype, const XString _id) 32 39 { 33 40 // Si le handle n'est pas initialisé à 0, on ne fait aucun traitement. … … 54 61 /* ********************************************************** */ 55 62 56 void xios_xml_parse_file_( XString _filename)63 void xios_xml_parse_file_(const XString _filename) 57 64 { 58 65 std::string __filename = stringXtoStd(_filename); … … 67 74 } 68 75 69 void xios_xml_parse_string_( XString _xmlcontent)76 void xios_xml_parse_string_(const XString _xmlcontent) 70 77 { 71 78 std::string __xmlcontent = stringXtoStd(_xmlcontent); … … 94 101 } 95 102 96 void xios_dtreatment_new_(XHandle * _dt, const XHandle * const _hd)103 void xios_dtreatment_new_(XHandle * const _dt, const XHandle * const _hd) 97 104 { 98 105 static bool called = false; … … 100 107 // Si le handle de traitement n'est pas initialisé à 0, on ne fait aucun traitement. 101 108 if (!isNullHandle(*_dt) || (_hd->data_type != ECONTEXT)) return; 102 Context* const __ctxt = (Context*) _hd->data_ptr; 109 Context * const __ctxt = (Context*) _hd->data_ptr; 110 DataTreatment * const __dtrt =__ctxt->setDataTreatment<DataTreatment>(); 103 111 104 _dt->data_type = DTREATMENT; 105 _dt->data_ptr = new DataTreatment(__ctxt); 106 107 if (!called) 112 if (__dtrt != NULL) 108 113 { 109 atexit (&deleteAllDataTreatment); 110 called = true; 114 AllDataTreatment.push_back(__dtrt); 115 _dt->data_type = DTREATMENT; 116 _dt->data_ptr = __dtrt; 117 if (!called) 118 { 119 atexit (&deleteAllDataTreatment); 120 called = true; 121 } 111 122 } 112 123 } … … 116 127 if (isNullHandle(*_hd) || (_hd->data_type != DTREATMENT)) return; 117 128 DataTreatment * const __dt = (DataTreatment*)_hd->data_ptr; 118 AllDataTreatment.push_back (__dt);119 129 switch(*_ft) 120 130 { … … 136 146 bool __wswap = (_wswap == NULL) ? false : *_wswap; 137 147 if (isNullHandle(*_ctxt) || (_ctxt->data_type != ECONTEXT)) return; 138 139 148 Context* const __ctxt = (Context*) _ctxt->data_ptr; 140 149 Context::SetCurrentContext(__ctxt->getId(), __wswap) ; 141 150 } 142 151 152 void xios_context_get_current_ (XHandle * _ctxt) 153 { 154 // Si le handle de traitement n'est pas initialisé à 0, on ne fait aucun traitement. 155 if ((Context::GetAllListObject().size() == 0) || 156 !isNullHandle(*_ctxt)) return; 157 _ctxt->data_type = ECONTEXT; 158 _ctxt->data_ptr = Context::GetCurrentContext(); 159 } 160 161 void xios_context_get_calendar_(const XHandle * const _ctxt, XHandle * _cal) 162 { 163 if (!isNullHandle(*_cal) || isNullHandle(*_ctxt) || 164 (_ctxt->data_type != ECONTEXT)) return; 165 Context* const __ctxt = (Context*) _ctxt->data_ptr; 166 AbstractCalendar * const __cal = __ctxt->getCalendar(); 167 if (__cal != NULL) 168 { 169 _cal->data_type = CALENDAR; 170 _cal->data_ptr = __cal; 171 } 172 } 173 174 /* ********************************************************** */ 175 /* CALENDAR INTERFACE */ 176 /* ********************************************************** */ 177 178 void xios_calendar_set_timestep_(const XHandle * const _cal, const XDuration * const _dur) 179 { 180 if (isNullHandle(*_cal) || (_cal->data_type != CALENDAR)) return; 181 const Duration __dur = durationXtoXMLIO(_dur); 182 AbstractCalendar * const __cal = (AbstractCalendar*) _cal->data_ptr; 183 __cal->setTimeStep(__dur); 184 } 185 186 #undef isNullHandle
Note: See TracChangeset
for help on using the changeset viewer.