Changeset 2491 in Sophya for trunk/SophyaPI/PIext/servnobjm.cc


Ignore:
Timestamp:
Jan 4, 2004, 8:02:44 PM (22 years ago)
Author:
ansari
Message:

Suite des modifs pour piapp multi-threads
1) Ajout Mutex de synchronisation ds ls classe NamedObjMgr
2) Suite controle de gestion d'appel aux methodes de PIStdImgApp depuis
la classe elle-meme, a travers le NamedObjMgr
3) Modification de la boucle d'evenements, avec un thread de reveil
periodique

Reza, 4 Janvier 2004

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PIext/servnobjm.cc

    r2419 r2491  
    4747
    4848/* --Methode-- */
    49 Services2NObjMgr::Services2NObjMgr(NamedObjMgr* omg, string& tmpdir)
     49Services2NObjMgr::Services2NObjMgr(string& tmpdir)
    5050{
    5151SetTmpDir(tmpdir);
    5252mImgapp = NULL;
    53 mOmg = omg;
     53mOmg = NULL;
    5454dynlink = NULL;
    5555}
     
    5959{
    6060CloseDLL();
     61if (mOmg) delete mOmg;
    6162}
    6263
     
    237238  int rsid = mImgapp->DispScDrawer(dr, titre, dopt);
    238239  if (nom.length() > 0) {
    239     mOmg->AddObj(vpy, nom);
    240     mOmg->AddWRsId(nom, rsid);
     240    MyObjMgr()->AddObj(vpy, nom);
     241    MyObjMgr()->AddWRsId(nom, rsid);
    241242    }
    242243  }
     
    304305  int rsid = mImgapp->Disp3DDrawer(sdr, titre, dopt);
    305306  if (nom.length() > 0)  {
    306     mOmg->AddObj(mtx, nom);
    307     mOmg->AddWRsId(nom, rsid);
     307    MyObjMgr()->AddObj(mtx, nom);
     308    MyObjMgr()->AddWRsId(nom, rsid);
    308309    }
    309310  }
     
    327328 fprintf(fip,"double %s(double ___dummy_variable___) \n{\n",func.c_str());
    328329 // Add all variables already declared
    329  DVList& varlist = mOmg->GetVarList();
     330 DVList& varlist = MyObjMgr()->GetVarList();
    330331 DVList::ValList::const_iterator it;
    331332 for(it = varlist.Begin(); it != varlist.End(); it++) {
     
    363364 // Eventually store the result into variable or just print it
    364365 if(resultvarname.size()>0) {
    365    if(mOmg->HasVar(resultvarname)) mOmg->DeleteVar(resultvarname);
     366   if(MyObjMgr()->HasVar(resultvarname)) MyObjMgr()->DeleteVar(resultvarname);
    366367   char str[512];
    367368   if(result==0.) sprintf(str,"%f",result);
     
    371372     else                   sprintf(str,"%.17e",result);
    372373   }
    373    mOmg->SetVar(resultvarname,(string)str);
     374   MyObjMgr()->SetVar(resultvarname,(string)str);
    374375 } else cout<<result<<" = "<<expval<<endl;
    375376
     
    382383{
    383384NObjMgrAdapter* obja=NULL;
    384 obja = mOmg->GetObjAdapter(nom);
     385obja = MyObjMgr()->GetObjAdapter(nom);
    385386if (obja == NULL) {
    386387  cout << "Services2NObjMgr::DisplayPoints2D() Error , No such object " << nom << endl;
     
    422423{
    423424NObjMgrAdapter* obja=NULL;
    424 obja = mOmg->GetObjAdapter(nom);
     425obja = MyObjMgr()->GetObjAdapter(nom);
    425426if (obja == NULL) {
    426427  cout << "Services2NObjMgr::DisplayPoints3D() Error , No such object " << nom << endl;
     
    461462{
    462463NObjMgrAdapter* obja=NULL;
    463 obja = mOmg->GetObjAdapter(nom);
     464obja = MyObjMgr()->GetObjAdapter(nom);
    464465if (obja == NULL) {
    465466  cout << "Services2NObjMgr::DisplayPoints2DW() Error , No such object " << nom << endl;
     
    494495{
    495496NObjMgrAdapter* obja=NULL;
    496 obja = mOmg->GetObjAdapter(nom);
     497obja = MyObjMgr()->GetObjAdapter(nom);
    497498if (obja == NULL) {
    498499  cout << "Services2NObjMgr::ProjectH1() Error , No such object " << nom << endl;
     
    504505NTuple* nt = NULL;
    505506AnyDataObj* oh = NULL;
    506 if (nomh1.length() > 0) oh=mOmg->GetObj(nomh1);
     507if (nomh1.length() > 0) oh=MyObjMgr()->GetObj(nomh1);
    507508else nomh1 = "/tmp/projh1d";
    508509if ( (oh != NULL) && (typeid(*oh) == typeid(Histo)) )  h1 = (Histo*)oh;  // Pas de remise a zero ! h1->Zero();
     
    531532    }
    532533  delete nt;
    533   mOmg->AddObj(h1, nomh1);
    534   }
    535 
    536 mOmg->DisplayObj(nomh1, dopt);
     534  MyObjMgr()->AddObj(h1, nomh1);
     535  }
     536
     537MyObjMgr()->DisplayObj(nomh1, dopt);
    537538return; 
    538539}
     
    543544{
    544545NObjMgrAdapter* obja=NULL;
    545 obja = mOmg->GetObjAdapter(nom);
     546obja = MyObjMgr()->GetObjAdapter(nom);
    546547if (obja == NULL) {
    547548  cout << "Services2NObjMgr::ProjectH2() Error , No such object " << nom << endl;
     
    553554NTuple* nt = NULL;
    554555AnyDataObj* oh = NULL;
    555 if (nomh2.length() > 0)  oh=mOmg->GetObj(nomh2);
     556if (nomh2.length() > 0)  oh=MyObjMgr()->GetObj(nomh2);
    556557else nomh2 = "/tmp/projh2d";
    557558if ( (oh != NULL) && (typeid(*oh) == typeid(Histo2D)) )  h2 = (Histo2D*)oh;  // Pas de remise a zero ! h2->Zero();
     
    581582    }
    582583  delete nt;
    583   mOmg->AddObj(h2, nomh2);
    584   }
    585 
    586 mOmg->DisplayObj(nomh2, dopt);
     584  MyObjMgr()->AddObj(h2, nomh2);
     585  }
     586
     587MyObjMgr()->DisplayObj(nomh2, dopt);
    587588return; 
    588589
     
    604605{
    605606NObjMgrAdapter* obja=NULL;
    606 obja = mOmg->GetObjAdapter(nom);
     607obja = MyObjMgr()->GetObjAdapter(nom);
    607608if (obja == NULL) {
    608609  cout << "Services2NObjMgr::ProjectHProf() Error , No such object " << nom << endl;
     
    614615NTuple* nt = NULL;
    615616AnyDataObj* oh = NULL;
    616 if (nomprof.length() > 0)  oh=mOmg->GetObj(nomprof);
     617if (nomprof.length() > 0)  oh=MyObjMgr()->GetObj(nomprof);
    617618else nomprof = "/tmp/projprof";
    618619if( (oh!=NULL) && (typeid(*oh) == typeid(HProf)) )  hprof = (HProf*)oh;
     
    641642    }
    642643  delete nt;
    643   mOmg->AddObj(hprof, nomprof);
     644  MyObjMgr()->AddObj(hprof, nomprof);
    644645  }
    645646hprof->UpdateHisto();
    646647
    647 mOmg->DisplayObj(nomprof, dopt);
     648MyObjMgr()->DisplayObj(nomprof, dopt);
    648649return;
    649650}
     
    655656{
    656657NObjMgrAdapter* obja=NULL;
    657 obja = mOmg->GetObjAdapter(nom);
     658obja = MyObjMgr()->GetObjAdapter(nom);
    658659if (obja == NULL) {
    659660  cout << "Services2NObjMgr::FillVect() Error , No such object: " << nom << endl;
     
    664665Vector* v1 = NULL;
    665666AnyDataObj* ov = NULL;
    666 ov=mOmg->GetObj(nomvec);
     667ov=MyObjMgr()->GetObj(nomvec);
    667668if (ov != NULL) v1 = dynamic_cast<Vector *>(ov);
    668669if (v1 == NULL) {
     
    695696 
    696697
    697 mOmg->DisplayObj(nomvec, dopt);
     698MyObjMgr()->DisplayObj(nomvec, dopt);
    698699return; 
    699700}
     
    704705{
    705706NObjMgrAdapter* obja=NULL;
    706 obja = mOmg->GetObjAdapter(nom);
     707obja = MyObjMgr()->GetObjAdapter(nom);
    707708if (obja == NULL) {
    708709  cout << "Services2NObjMgr::FillMatx() Error , No such objet " << nom << endl;
     
    713714Matrix* mtx = NULL;
    714715AnyDataObj* om = NULL;
    715 om=mOmg->GetObj(nommtx);
     716om=MyObjMgr()->GetObj(nommtx);
    716717if (om != NULL) mtx = dynamic_cast<Matrix *>(om);
    717718if (mtx == NULL) {
     
    746747 
    747748
    748 mOmg->DisplayObj(nommtx, dopt);
     749MyObjMgr()->DisplayObj(nommtx, dopt);
    749750return; 
    750751
     
    756757{
    757758NObjMgrAdapter* obja=NULL;
    758 obja = mOmg->GetObjAdapter(nom);
     759obja = MyObjMgr()->GetObjAdapter(nom);
    759760if (obja == NULL) {
    760761  cout << "Services2NObjMgr::ExpressionToVector() Error , No such object " << nom << endl;
     
    789790  }
    790791delete nt;
    791 mOmg->AddObj(vec, nomvec);
    792 mOmg->DisplayObj(nomvec, dopt);
     792MyObjMgr()->AddObj(vec, nomvec);
     793MyObjMgr()->DisplayObj(nomvec, dopt);
    793794return; 
    794795}
     
    801802//      les sur-numeraires sont mises a "def_val" par defaut.
    802803{
    803 AnyDataObj* mobj = mOmg->GetObj(nom);
     804AnyDataObj* mobj = MyObjMgr()->GetObj(nom);
    804805if(mobj == NULL)
    805806  {cout<<"NtFromASCIIFile() Error, object "<<nom<<" not existing"<<endl;
     
    820821{
    821822NObjMgrAdapter* obja=NULL;
    822 obja = mOmg->GetObjAdapter(nom);
     823obja = MyObjMgr()->GetObjAdapter(nom);
    823824if (obja == NULL) {
    824825  cout << "Services2NObjMgr::FillNT() Error , No such object " << nom << endl;
     
    830831NTuple* nt = NULL;
    831832AnyDataObj* oh = NULL;
    832 if (nomnt.length() > 0)  oh=mOmg->GetObj(nomnt);
     833if (nomnt.length() > 0)  oh=MyObjMgr()->GetObj(nomnt);
    833834else nomnt = "/tmp/fillnt";
    834835if ( (oh != NULL) && (typeid(*oh) == typeid(NTuple)) )  {
     
    847848ComputeExpressions(obja, expx, expy, expz, expt, expcut, loop, nt, NULL, NULL);
    848849
    849 if (fgnnt) mOmg->AddObj(nt, nomnt);
     850if (fgnnt) MyObjMgr()->AddObj(nt, nomnt);
    850851return; 
    851852
     
    859860
    860861NObjMgrAdapter* obja=NULL;
    861 obja = mOmg->GetObjAdapter(nom);
     862obja = MyObjMgr()->GetObjAdapter(nom);
    862863if (obja == NULL) {
    863864  cout << "Services2NObjMgr::FillNTFrCFile( " << nom << "...) No such object" <<endl;
     
    882883if (nomnt.length() > 0) {
    883884  AnyDataObj* oh = NULL;
    884   oh=mOmg->GetObj(nomnt);
     885  oh=MyObjMgr()->GetObj(nomnt);
    885886  if ( (oh != NULL) && (typeid(*oh) == typeid(NTuple)) )  {
    886887    nt = (NTuple*)oh;
     
    953954mImgapp->RedirectStdOutErr(red);
    954955
    955 if (fgnnt) mOmg->AddObj(nt, nomnt);
     956if (fgnnt) MyObjMgr()->AddObj(nt, nomnt);
    956957return;
    957958}
     
    962963{
    963964NObjMgrAdapter* obja=NULL;
    964 obja = mOmg->GetObjAdapter(nom);
     965obja = MyObjMgr()->GetObjAdapter(nom);
    965966if (obja == NULL) {
    966967  cout << "Services2NObjMgr::PrepareNTExpressionCFile( " << nom << "...) No such object" <<endl;
     
    10441045{
    10451046NObjMgrAdapter* obja=NULL;
    1046 obja = mOmg->GetObjAdapter(nom);
     1047obja = MyObjMgr()->GetObjAdapter(nom);
    10471048if (obja == NULL) {
    10481049  cout << "Services2NObjMgr::FillGFD() Error , No such object "<<nom<<endl;
     
    10821083// Menage et table d'objets
    10831084delete nt;
    1084 mOmg->AddObj(gfd, nomgfd);
     1085MyObjMgr()->AddObj(gfd, nomgfd);
    10851086return;
    10861087}
     
    11541155// Menage et table d'objets
    11551156if( omg.GetObj(nomgfd) != NULL ) omg.DelObj(nomgfd);
    1156 mOmg->AddObj(gfd,nomgfd);
     1157MyObjMgr()->AddObj(gfd,nomgfd);
    11571158return;
    11581159}
Note: See TracChangeset for help on using the changeset viewer.