Changeset 265 for XMLIO_V2/dev/dev_rv/src/xmlio/iface/interface.cpp.in
- Timestamp:
- 09/06/11 11:57:45 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/dev_rv/src/xmlio/iface/interface.cpp.in
r237 r265 97 97 void xios_handle_create (XPtr * const _ret, XDType _dtype, const XString _id, XSize _id_len) 98 98 { 99 MAKE_STRING(__id, _id, _id_len); 100 switch(_dtype) 101 { 102 case (ECONTEXT): 103 // Si le context n'existe pas, on retourne un handle vide/nul. 104 *_ret = (!CObjectFactory::HasObject<CContext>(__id)) 105 ? 0 : CObjectFactory::GetObject<CContext>(__id).get(); 106 return ; 107 CASE_ELEM(AXIS , Axis) 108 CASE_ELEM(DOMAIN , Domain) 109 CASE_ELEM(FIELD , Field) 110 CASE_ELEM(FILE , File) 111 CASE_ELEM(GRID , Grid) 112 default : 113 *_ret = 0; 114 return; 99 try 100 { 101 MAKE_STRING(__id, _id, _id_len); 102 switch(_dtype) 103 { 104 case (ECONTEXT): 105 { 106 *_ret = 0; 107 // Si le context n'existe pas, on retourne un handle vide/nul. 108 //*_ret = (!CObjectFactory::HasObject<CContext>(__id)) 109 // ? 0 : CObjectFactory::GetObject<CContext>(__id).get(); 110 std::vector<boost::shared_ptr<CContext> > def_vector = 111 CContext::GetContextGroup()->getChildList(); 112 for (StdSize i = 0; i < def_vector.size(); i++) 113 { 114 //std::cout << "_ " << def_vector[i]->getId() << std::endl; 115 if (def_vector[i]->getId().compare(__id) == 0) 116 *_ret = def_vector[i].get(); 117 } 118 //std::cout << __id << "=" << *_ret << std::endl; 119 return ; 120 } 121 CASE_ELEM(AXIS , Axis) 122 CASE_ELEM(DOMAIN , Domain) 123 CASE_ELEM(FIELD , Field) 124 CASE_ELEM(FILE , File) 125 CASE_ELEM(GRID , Grid) 126 default : 127 *_ret = 0; 128 return; 129 } 130 } 131 catch (CException & exc) 132 { 133 std::cerr << exc.getMessage() << std::endl; 134 exit (EXIT_FAILURE); 115 135 } 116 136 } … … 127 147 CTreeManager::ParseFile(__filename); 128 148 //~ StdOStringStream oss; 129 //~ oss << StdString("d ata/def/def_client_pre.")149 //~ oss << StdString("def_client_pre.") 130 150 //~ << CMPIManager::GetCommRank(CMPIManager::GetCommWorld()); 131 151 //~ CTreeManager::PrintTreeToFile(oss.str()); … … 147 167 CTreeManager::ParseString(__xmlcontent); 148 168 //~ StdOStringStream oss; 149 //~ oss << StdString("d ata/def/def_client_pre.")169 //~ oss << StdString("def_client_pre.") 150 170 //~ << CMPIManager::GetCommRank(CMPIManager::GetCommWorld()); 151 171 //~ CTreeManager::PrintTreeToFile(oss.str()); … … 162 182 void xios_context_set_current (XPtr const _ctx, bool _wswap) 163 183 { 164 boost::shared_ptr<CContext> context = CObjectFactory::GetObject<CContext> ((CContext*)_ctx); 165 CTreeManager::SetCurrentContextId(context->getId()); 184 try 185 { 186 //boost::shared_ptr<CContext> context = CObjectFactory::GetObject<CContext> ((CContext*)_ctx); 187 CTreeManager::SetCurrentContextId(((CContext*)_ctx)->getId()); 188 } 189 catch (CException & exc) 190 { 191 std::cerr << exc.getMessage() << std::endl; 192 exit (EXIT_FAILURE); 193 } 166 194 } 167 195 … … 284 312 { 285 313 MAKE_STRING(__filename, _filename, _filename_len); 286 if (_filename_len != -1) 287 CTreeManager::PrintTreeToFile(__filename); 288 else 289 CTreeManager::PrintTreeToStream(std::clog); 290 } 314 try 315 { 316 if (_filename_len != -1) 317 CTreeManager::PrintTreeToFile(__filename); 318 else 319 CTreeManager::PrintTreeToStream(std::clog); 320 } 321 catch (CException & exc) 322 { 323 std::cerr << exc.getMessage() << std::endl; 324 exit (EXIT_FAILURE); 325 } 326 } 327 328 //------------------------------------------------------------------- 329 330 void xios_init_ioserver(MPIComm * comm_client) 331 { 332 try 333 { 334 MPIComm comm_client_server, comm_server; 335 CMPIManager::Initialise(NULL, NULL); 336 CMPIManager::DispatchClient(false, *comm_client, comm_client_server, comm_server); 337 } 338 catch (CException & exc) 339 { 340 std::cerr << exc.getMessage() << std::endl; 341 exit (EXIT_FAILURE); 342 } 343 } 344 291 345 292 346 //------------------------------------------------------------------- … … 301 355 CObjectFactory::GetObject<CContext>(__context); 302 356 StdOStringStream oss; 303 //~ oss << StdString("data/def/def_client_next.")304 //~<< CMPIManager::GetCommRank(CMPIManager::GetCommWorld());305 //~CTreeManager::PrintTreeToFile(oss.str());306 //~oss.str("");357 oss << StdString("def_client_next.") 358 << CMPIManager::GetCommRank(CMPIManager::GetCommWorld()); 359 CTreeManager::PrintTreeToFile(oss.str()); 360 oss.str(""); 307 361 308 362 boost::shared_ptr<CDataTreatment> dt(new CDataTreatment (context)); 309 363 context->setDataTreatment(dt); 310 364 311 oss << StdString("d ata/def/def_client_end.")365 oss << StdString("def_client_end.") 312 366 << CMPIManager::GetCommRank(CMPIManager::GetCommWorld()); 313 367 CTreeManager::PrintTreeToFile(oss.str()); … … 350 404 void xios_dtreatment_end(void) 351 405 { 352 406 try 407 { 408 CMPIManager::Finalize(); 409 } 410 catch (CException & exc) 411 { 412 std::cerr << exc.getMessage() << std::endl; 413 exit (EXIT_FAILURE); 414 } 353 415 } 354 416 … … 358 420 XSize data_Xsize, XSize data_Ysize, XSize data_Zsize) 359 421 { 360 361 } 422 MAKE_STRING(__field_id, _field_id, _field_id_len); 423 try 424 { 425 boost::shared_ptr<CContext> context = 426 CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()); 427 boost::shared_ptr<data::CDataTreatment> dtreat = context->getDataTreatment(); 428 if (data_Ysize==-1 && data_Zsize==-1) 429 { 430 ARRAY(double, 1) data(new CArray<double, 1>(boost::extents [data_Xsize])); 431 std::copy(data_k8, data_k8+data->num_elements(), data->data()); 432 dtreat->write_data(__field_id, data); 433 return; 434 } 435 else if (data_Zsize==-1) 436 { 437 ARRAY(double, 2) data(new CArray<double, 2>(boost::extents [data_Xsize][data_Ysize])); 438 std::copy(data_k8, data_k8+data->num_elements(), data->data()); 439 dtreat->write_data(__field_id, data); 440 return; 441 } 442 else 443 { 444 ARRAY(double, 3) data(new CArray<double, 3>(boost::extents [data_Xsize][data_Ysize][data_Zsize])); 445 std::copy(data_k8, data_k8+data->num_elements(), data->data()); 446 dtreat->write_data(__field_id, data); 447 return; 448 } 449 } 450 catch (CException & exc) 451 { 452 std::cerr << exc.getMessage() << std::endl; 453 exit (EXIT_FAILURE); 454 } 455 } 456 457 //------------------------------------------------------------------- 458 459 void xios_write_data_f(const XString _field_id, XSize _field_id_len, float * data_k4, 460 XSize data_Xsize, XSize data_Ysize, XSize data_Zsize) 461 { 462 MAKE_STRING(__field_id, _field_id, _field_id_len); 463 try 464 { 465 boost::shared_ptr<CContext> context = 466 CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()); 467 boost::shared_ptr<data::CDataTreatment> dtreat = context->getDataTreatment(); 468 if (data_Ysize==-1 && data_Zsize==-1) 469 { 470 ARRAY(float, 1) data(new CArray<float, 1>(boost::extents [data_Xsize])); 471 std::copy(data_k4, &(data_k4[data->num_elements()]), data->data()); 472 dtreat->write_data(__field_id, data); 473 return; 474 } 475 else if (data_Zsize==-1) 476 { 477 ARRAY(float, 2) data(new CArray<float, 2>(boost::extents [data_Xsize][data_Ysize])); 478 std::copy(data_k4, &(data_k4[data->num_elements()]), data->data()); 479 dtreat->write_data(__field_id, data); 480 return; 481 } 482 else 483 { 484 ARRAY(float, 3) data(new CArray<float, 3>(boost::extents [data_Xsize][data_Ysize][data_Zsize])); 485 std::copy(data_k4, &(data_k4[data->num_elements()]), data->data()); 486 dtreat->write_data(__field_id, data); 487 return; 488 } 489 } 490 catch (CException & exc) 491 { 492 std::cerr << exc.getMessage() << std::endl; 493 exit (EXIT_FAILURE); 494 } 495 } 496 362 497 363 498 //------------------------------------------------------------------- … … 367 502 try 368 503 { 504 boost::shared_ptr<CContext> context = 505 CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()); 506 boost::shared_ptr<data::CDataTreatment> dtreat = context->getDataTreatment(); 507 dtreat->update_calendar(step); 369 508 } 370 509 catch (CException & exc) … … 382 521 try 383 522 { 523 date::CDuration dur = {ts_year, ts_month, ts_day, ts_hour, ts_minute, ts_second}; 524 boost::shared_ptr<CContext> context = 525 CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()); 526 boost::shared_ptr<data::CDataTreatment> dtreat = context->getDataTreatment(); 527 dtreat->set_timestep(dur); 384 528 } 385 529 catch (CException & exc)
Note: See TracChangeset
for help on using the changeset viewer.