Ignore:
Timestamp:
10/15/10 11:16:12 (14 years ago)
Author:
hozdoba
Message:

Pour sauvegarde

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/dev_rv/src/XMLIO/c_interface.cpp

    r133 r134  
    55/* ********************************************************** */ 
    66 
    7 static inline std::string stringXtoStd(XString _str) 
     7static inline std::string stringXtoStd(const XString _str) 
    88{ 
    99   char * const temp = new char[_str.len+1](); 
     
    2525} 
    2626 
     27static 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 
    2734/* ********************************************************** */ 
    2835/*                      HANDLE INTERFACE                      */ 
    2936/* ********************************************************** */ 
    3037 
    31 void xios_handle_create_(XHandle * _ret, const XDType * const _dtype, XString _id) 
     38void xios_handle_create_(XHandle * const _ret, const XDType * const _dtype, const XString _id) 
    3239{ 
    3340   // Si le handle n'est pas initialisé à 0, on ne fait aucun traitement. 
     
    5461/* ********************************************************** */ 
    5562 
    56 void xios_xml_parse_file_(XString _filename) 
     63void xios_xml_parse_file_(const XString _filename) 
    5764{ 
    5865   std::string   __filename = stringXtoStd(_filename); 
     
    6774} 
    6875 
    69 void xios_xml_parse_string_(XString _xmlcontent) 
     76void xios_xml_parse_string_(const XString _xmlcontent) 
    7077{ 
    7178   std::string        __xmlcontent = stringXtoStd(_xmlcontent); 
     
    94101} 
    95102 
    96 void xios_dtreatment_new_(XHandle * _dt, const XHandle * const _hd) 
     103void xios_dtreatment_new_(XHandle * const _dt, const XHandle * const _hd) 
    97104{ 
    98105   static bool called = false; 
     
    100107   // Si le handle de traitement n'est pas initialisé à 0, on ne fait aucun traitement. 
    101108   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>(); 
    103111 
    104    _dt->data_type = DTREATMENT; 
    105    _dt->data_ptr  = new DataTreatment(__ctxt); 
    106  
    107    if (!called) 
     112   if (__dtrt != NULL) 
    108113   { 
    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      } 
    111122   } 
    112123} 
     
    116127   if (isNullHandle(*_hd) || (_hd->data_type != DTREATMENT)) return; 
    117128   DataTreatment * const __dt = (DataTreatment*)_hd->data_ptr; 
    118    AllDataTreatment.push_back (__dt); 
    119129   switch(*_ft) 
    120130   { 
     
    136146   bool __wswap = (_wswap == NULL) ? false : *_wswap; 
    137147   if (isNullHandle(*_ctxt) || (_ctxt->data_type != ECONTEXT)) return; 
    138  
    139148   Context* const __ctxt = (Context*) _ctxt->data_ptr; 
    140149   Context::SetCurrentContext(__ctxt->getId(), __wswap) ; 
    141150} 
    142151 
     152void 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 
     161void 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 
     178void 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.