Changeset 123 for XMLIO_V2/dev/dev_rv/src/XMLIO/c_interface.cpp
- Timestamp:
- 09/27/10 14:01:47 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/dev_rv/src/XMLIO/c_interface.cpp
r122 r123 8 8 extern "C" void main_c_(void) ; 9 9 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. 12 template <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 10 21 void main_c_ (void) 11 22 { 12 23 try 13 24 { 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. 18 27 ifstream istr( file.c_str() , ifstream::in ); 19 28 20 29 // On commence la lecture du flux de donnée xml qui doit posséder pour racine un unique noeud nommé "simulation". 21 30 XMLNode node = XMLNode::CreateNode(istr, Context::GetRootName()); 31 22 32 // On parse le fichier xml noeud par noeud (ie on construit dynamiquement notre arbre d'objets). 23 33 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!!27 34 28 35 // On se place dans le contexte 'context1'. 29 36 Context::SetCurrentContext("context1") ; 30 37 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 32 43 // On crée une instance de traitement de données dans le format NetCDF4. 33 44 AbstractDataTreatment *dtreat = new NetCDF4DataTreatment(Context::GetObject("context1")); 34 35 // Affichage de la liste des fichiers à sortir (par id).36 //dtreat->printEnabledFilesId();37 45 38 46 NetCDF4DataOutput dop(CFile::GetObject("fichier1")); 39 47 dop.createFileAndHeader(); 40 48 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. 42 63 //Context::ShowTree(std::clog); 43 64 … … 52 73 } 53 74 54 // return (0);75 // return (0); 55 76 } 56 77 57 78 58 /* CODE TEST POUR CALENDRIER59 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.