Ignore:
Timestamp:
09/27/10 14:01:47 (14 years ago)
Author:
hozdoba
Message:

Début de gestion des opérations sur les champs + quelques modifications

File:
1 edited

Legend:

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

    r122 r123  
    88extern "C" void main_c_(void) ; 
    99 
     10// Cette fonction remplit un tableau à N dimensions de valeurs de type T (T = double ou float) de la maniÚre suivante : 
     11// 0.0 1.0 2.0 3.0, puis 0.1 1.1 2.1 3.1 ... au second appel de la fonction, etc. 
     12template <class T> 
     13   static void updateDataTest(T begin, T end) 
     14{ 
     15   static int called = 0; int i = 0; 
     16   for (T it = begin; it != end; it++, i++) 
     17      (*it) = i + called * 0.1; 
     18   called++; 
     19} 
     20 
    1021void main_c_ (void) 
    1122{ 
    1223   try 
    1324   { 
    14       //string file("/local/XMLIOSERVER_DEV/dev_rv/test/iodef_test.xml"); 
    15       //string file("/local/XMLIOSERVER_DEV/dev_rv/iodef_test.xml"); 
    16       string file("/local/XMLIOSERVER_DEV/dev_rv/test/iodef_simple_test.xml"); 
    17  
     25      Array<double, 3> arr(3, 3, 3) ; // Les données. 
     26      string file("/local/XMLIOSERVER_DEV/dev_rv/test/iodef_simple_test.xml"); // Le fichier de définition. 
    1827      ifstream istr( file.c_str() , ifstream::in ); 
    1928 
    2029      // On commence la lecture du flux de donnée xml qui doit posséder pour racine un unique noeud nommé "simulation". 
    2130      XMLNode node = XMLNode::CreateNode(istr, Context::GetRootName()); 
     31 
    2232      // On parse le fichier xml noeud par noeud (ie on construit dynamiquement notre arbre d'objets). 
    2333      XMLParser::Parse(node); 
    24  
    25       // On résoud les héritages descendants ainsi que les héritages par référence. 
    26       //Context::ResolveInheritance(); // Plus nécessaire!! 
    2734 
    2835      // On se place dans le contexte 'context1'. 
    2936      Context::SetCurrentContext("context1") ; 
    3037 
    31       std::cout << " * ----------- <<<TOP>>> Début du traitement ----------- * " << std::endl; 
     38      std::cout << " * ----------- Début du traitement ----------- * " << std::endl; 
     39 
     40      //Affichage de la date initiale (pour vérification). 
     41      std::cout << *Context::GetObject("context1")->getCalendar() << std::endl; 
     42 
    3243      // On crée une instance de traitement de données dans le format NetCDF4. 
    3344      AbstractDataTreatment *dtreat = new NetCDF4DataTreatment(Context::GetObject("context1")); 
    34  
    35       // Affichage de la liste des fichiers à sortir (par id). 
    36       //dtreat->printEnabledFilesId(); 
    3745 
    3846      NetCDF4DataOutput dop(CFile::GetObject("fichier1")); 
    3947      dop.createFileAndHeader(); 
    4048 
    41       // On écrit l'arborescence résultante du traitement sur la sortie. 
     49      for(int tcourant = 0, tfinal = 9; tcourant <= tfinal; tcourant++) 
     50      { 
     51         // Mise à jour de la date. 
     52 
     53 
     54         // Mise à jour des données. 
     55         updateDataTest<Array<double, 3>::iterator>(arr.begin(), arr.end()); 
     56 
     57         // Ecriture des données. 
     58         // dtreat->writeData("Premier_champ", arr); 
     59 
     60      } 
     61 
     62      // On écrit l'arborescence résultante du traitement sur la sortie de log. 
    4263      //Context::ShowTree(std::clog); 
    4364 
     
    5273   } 
    5374 
    54 // return (0); 
     75   // return (0); 
    5576} 
    5677 
    5778 
    58       /* CODE TEST POUR CALENDRIER 
    59       AbstractCalendar* calendar = new GregorianCalendar(); 
    60  
    61       Date dd (*calendar, 2000, 05, 03, 00, 00, 00) ; 
    62       Date ddd(*calendar, 2030, 11, 02, 10, 33, 40) ; 
    63  
    64       Date d1 (*calendar, 2007, 11, 12, 00, 00, 00) ; 
    65       Date d2 (*calendar, 2008, 11, 12, 00, 00, 00) ; 
    66  
    67       string sttr("12/07/2005 - 10:11:30"); 
    68       string stttr("111s 14.36 mi 7y 3.9y 3.4 mg"); 
    69       Date d3 = Date::FromString(sttr, *calendar); 
    70  
    71       // Les mois sont considérés comme des entiers mais stockés comme des flottants. 
    72       Duration sc0 = Second * -65.3 + Minute * 117.5   + Hour * 65.9  + Day * 417.8 + Month * 16.0  - Year * 17.5; 
    73       Duration sc1 = Second * 175.3 - Minute * 13109.6 + Hour * 135.1 - Day * 616.4 + Month * 236.0 + Year * 33.9; 
    74       Duration sc2 = 60 * Day; 
    75  
    76       Duration sc3 = Duration::FromString(stttr); 
    77  
    78       std::cout << calendar->getInitDate()    << std::endl; 
    79       std::cout << calendar->getCurrentDate() << std::endl; 
    80  
    81       std::cout << boolalpha << (calendar->getInitDate() != calendar->getCurrentDate()) << std::endl; 
    82  
    83       std::cout << (Time)d2 - (Time)(d1 + 365 * Day) << std::endl; 
    84       std::cout << sc0 << std::endl << sc1 << std::endl << sc1 - sc0 << std::endl; 
    85       std::cout << ddd - dd << std::endl; 
    86       std::cout << dd << std::endl; 
    87       std::cout << (Time)dd << std::endl; 
    88       std::cout << calendar->getNbSecond(dd) << std::endl; 
    89  
    90       std::cout << (dd+sc2) << std::endl; 
    91       std::cout << (d3)  << std::endl; 
    92  
    93       std::cout << (sc3) << std::endl; 
    94  
    95       delete calendar; 
    96       */ 
    97  
Note: See TracChangeset for help on using the changeset viewer.