Changeset 2755 in Sophya for trunk/SophyaPI/PIext/nobjmgr.cc


Ignore:
Timestamp:
May 23, 2005, 6:33:02 PM (20 years ago)
Author:
ansari
Message:

1/ Correction bug trace des lignes ds PINTuple
2/ Ajout methode IsThreadable() (declaration conformite thread separe pour certaines commandes) ds baseexecut.h .cc (plot2d plot3d ...) , ds pawexecut.cc (n/plot ...) et ds cxxexecutor.h .cc (c++exec c++execfrf ...)
3/ Ajout de ZMutex (et ZSync) pour la gestion des commandes threadable - ds les
executeurs et ds servnobjm.h .cc
4/ bug d'execution en thread identifie et corrige ds nobjmgr.h .cc (ajout des
methodes GetObj_P() GetObjAdapter_P() et ReadObj_P()
5/ Ajout de l'appel a ZSync::NOp() pour eviter les warnings 'unused variable zs ...'

Reza 23 Mai 2005

File:
1 edited

Legend:

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

    r2701 r2755  
    9595static DVList* myVars = NULL;  // Pour stocker les variables
    9696
    97 static string* TmpDir;  // Repertoire pour les compilations / link dynamique
     97static string* TmpDir = NULL;  // Repertoire pour les compilations / link dynamique
    9898
    9999// Pour gestion multithread
    100 static ZMutex* myMutex;
     100static ZMutex* myMutex = NULL;
    101101// ..................................................................
    102102
     
    122122  myObjs = new NObjList; 
    123123  myVars = new DVList;
     124  myMutex = new ZMutex;
    124125  currDir = new string("home");
    125126  string dirn = "home";
     
    144145  if ( (l>0) && ((*TmpDir)[l-1] != '/') )  (*TmpDir) += '/';
    145146  servnobjm = new Services2NObjMgr(*TmpDir);
    146   myMutex = new ZMutex;
    147147  }
    148148fgOInit++;
     
    230230    return(false);
    231231  }
    232   ZSync(*myMutex);
     232  ZSync zs(*myMutex); zs.NOp();
    233233#ifdef SANS_EVOLPLANCK
    234234  bool fg = true;
     
    248248    return(false);
    249249  }
    250   ZSync(*myMutex);
     250  ZSync zs(*myMutex); zs.NOp();
    251251#ifdef SANS_EVOLPLANCK
    252252  DVList::ValList::const_iterator it;
     
    266266    return(false);
    267267  }
    268   ZSync(*myMutex);
     268  ZSync zs(*myMutex); zs.NOp();
    269269#ifdef SANS_EVOLPLANCK
    270270  return(false);
     
    281281    return("");
    282282  }
    283   ZSync(*myMutex);
     283  ZSync zs(*myMutex); zs.NOp();
    284284  //  cout << " DEBUG::GetVar " << *myVars << endl;
    285285  return(myVars->GetS(key));
     
    290290{
    291291  //  cout << " DEBUG::GetVarList " << *myVars << endl;
    292   ZSync(*myMutex);
     292  ZSync zs(*myMutex); zs.NOp();
    293293  return(*myVars);
    294294}
     
    297297bool NamedObjMgr::CreateDir(string & dirname)
    298298{
    299   ZSync(*myMutex);
     299  ZSync zs(*myMutex); zs.NOp();
    300300  return CreateDir_P(dirname);
    301301}
     
    337337  return(false);
    338338  }
    339 ZSync(*myMutex);
     339ZSync zs(*myMutex); zs.NOp();
    340340NObjDirList::iterator it = myDirs->find(dirname);
    341341if (it == myDirs->end()) {
     
    369369void NamedObjMgr::LockDir(string & dirname)
    370370{
    371 ZSync(*myMutex);
     371ZSync zs(*myMutex); zs.NOp();
    372372if ( !CheckDirName(dirname) ) return;
    373373NObjDirList::iterator it = myDirs->find(dirname);
     
    381381void NamedObjMgr::UnlockDir(string & dirname)
    382382{
    383 ZSync(*myMutex);
     383ZSync zs(*myMutex); zs.NOp();
    384384if ( !CheckDirName(dirname) ) return;
    385385NObjDirList::iterator it = myDirs->find(dirname);
     
    393393void NamedObjMgr::SetKeepOldDirAtt(string & dirname, bool keepold)
    394394{
    395 ZSync(*myMutex);
     395ZSync zs(*myMutex); zs.NOp();
    396396if ( !CheckDirName(dirname) ) return;
    397397NObjDirList::iterator it = myDirs->find(dirname);
     
    409409bool NamedObjMgr::SetCurrentDir(string & dirname)
    410410{
    411 ZSync(*myMutex);
     411ZSync zs(*myMutex); zs.NOp();
    412412if ( !CheckDirName(dirname) ) {
    413413  cout << "NamedObjMgr::SetCurrentDir( " << dirname << ") Error - Invalid name !" << endl;
     
    427427void NamedObjMgr::GetCurrentDir(string & dirname)
    428428{
    429 ZSync(*myMutex);
     429ZSync zs(*myMutex); zs.NOp();
    430430dirname = *currDir;
    431431}
     
    434434void NamedObjMgr::ListDirs(string & patt)
    435435{
    436 ZSync(*myMutex);
     436ZSync zs(*myMutex); zs.NOp();
    437437NObjDirList::iterator it;
    438438string cn;
     
    454454void NamedObjMgr::GetDirList(string & patt, vector<string>& lstd)
    455455{
    456 ZSync(*myMutex);
     456ZSync zs(*myMutex); zs.NOp();
    457457NObjDirList::iterator it;
    458458string cn;
     
    467467void NamedObjMgr::CleanDir(string & dirname)
    468468{
    469 ZSync(*myMutex);
     469ZSync zs(*myMutex); zs.NOp();
    470470CleanDir_P(dirname);
    471471}
     
    533533bool NamedObjMgr::AddObj(AnyDataObj* obj, string & nom, bool crd)
    534534{
    535   ZSync(*myMutex);
     535  ZSync zs(*myMutex); zs.NOp();
    536536  return AddObj_P(obj, nom, crd);
    537537}
     
    625625bool NamedObjMgr::AddObj(AnyDataObj& obj, string & nom, bool crd)
    626626{
    627 ZSync(*myMutex);
     627ZSync zs(*myMutex); zs.NOp();
    628628NObjMgrAdapter* adap = GetServiceObj()->GetAdapter(&obj);
    629629if (adap == NULL) {
     
    643643bool NamedObjMgr::RenameObj(string & nom, string& nomnew)
    644644{
    645   ZSync(*myMutex);
     645  ZSync zs(*myMutex); zs.NOp();
    646646  return RenameObj_P(nom, nomnew);
    647647}
     
    710710bool NamedObjMgr::CopyObj(string & nom, string& nomcp)
    711711{
    712 ZSync(*myMutex);
     712ZSync zs(*myMutex); zs.NOp();
    713713if(nomcp.length()<=0)
    714714  {cout<<"NamedObjMgr::CopyObj() Error, copied obj name "<<nomcp<<" not valid"<<endl;
    715715  return(false);}
    716 NObjMgrAdapter* obnom = GetObjAdapter(nom);
     716NObjMgrAdapter* obnom = GetObjAdapter_P(nom);
    717717if(obnom==NULL)
    718718  {cout<<"NamedObjMgr::CopyObj() Error -  No "<<nom<<" object !"<<endl;
     
    727727bool NamedObjMgr::DelObj(string & nom, bool fgd)
    728728{
    729   ZSync(*myMutex);
     729  ZSync zs(*myMutex); zs.NOp();
    730730  return DelObj_P(nom, fgd);
    731731}
     
    778778bool NamedObjMgr::DelObj_Id(int oid)
    779779{
    780 ZSync(*myMutex);
     780ZSync zs(*myMutex); zs.NOp();
    781781NObjList::iterator it;
    782782string nom;
     
    794794void NamedObjMgr::DelObjects(string & patt, bool fgd)
    795795{
    796 ZSync(*myMutex);
     796ZSync zs(*myMutex); zs.NOp();
    797797string n1,r1;
    798798ParseObjectName(patt, r1, n1);
     
    812812AnyDataObj* NamedObjMgr::GetObj(string & nom)
    813813{
    814 ZSync(*myMutex);
     814ZSync zs(*myMutex); zs.NOp();
     815return GetObj_P(nom);
     816}
     817
     818/* --Methode-- */
     819AnyDataObj* NamedObjMgr::GetObj_P(string & nom)
     820{
    815821string n1,r1;
    816822ParseObjectName(nom, r1, n1);
     
    824830NObjMgrAdapter* NamedObjMgr::GetObjAdapter(string & nom)
    825831{
    826 ZSync(*myMutex);
     832ZSync zs(*myMutex); zs.NOp();
     833return GetObjAdapter_P(nom);
     834}
     835
     836/* --Methode-- */
     837NObjMgrAdapter* NamedObjMgr::GetObjAdapter_P(string & nom)
     838{
    827839string n1,r1;
    828840ParseObjectName(nom, r1, n1);
     
    836848void NamedObjMgr::ListObjs(string & patt)
    837849{
    838 ZSync(*myMutex);
     850ZSync zs(*myMutex); zs.NOp();
    839851int k;
    840852AnyDataObj* obj=NULL;
     
    865877void NamedObjMgr::GetObjList(string & patt, vector<string> &lst)
    866878{
    867 ZSync(*myMutex);
     879ZSync zs(*myMutex); zs.NOp();
    868880string n1,r1;
    869881if (patt.length() < 1)  return;
     
    901913void NamedObjMgr::ReadObj(string const & flnm, string & nobj)
    902914{
    903 ZSync(*myMutex);
     915ZSync zs(*myMutex); zs.NOp();
    904916PPersist* ppobj=NULL;
    905917bool ok = true;
     
    934946{
    935947if(flnm_objname.size()<2) return;
    936 ZSync(*myMutex);
     948ZSync zs(*myMutex); zs.NOp();
    937949int nread=0;
    938950try {
     
    963975void NamedObjMgr::ReadObj(PInPersist& s, int num)
    964976{
    965 ZSync(*myMutex);
     977ZSync zs(*myMutex); zs.NOp();
     978ReadObj_P(s, num);
     979}
     980
     981/* --Methode-- */
     982void NamedObjMgr::ReadObj_P(PInPersist& s, int num)
     983{
    966984int_4 i; // $CHECK$ int -> int_4 a cause de TagKey
    967985#ifdef SANS_EVOLPLANCK
     
    10461064void NamedObjMgr::ReadAll(string const & flnm)
    10471065{
    1048 ZSync(*myMutex);
     1066ZSync zs(*myMutex); zs.NOp();
    10491067#ifdef SANS_EVOLPLANCK
    10501068bool ok = true;
     
    10651083  AddObj_P(obj->DataObj(), nom, false);
    10661084  }
    1067 else ReadObj((*ppin), -1);
     1085else ReadObj_P((*ppin), -1);
    10681086delete ppin;
    10691087#else
     
    10771095      cout << " ... Reading " << pis.NbNameTags() << " objects at NameTags " ;
    10781096    }
    1079     ReadObj(pis, -1);
     1097    ReadObj_P(pis, -1);
    10801098    return;
    10811099  }
     
    11011119void NamedObjMgr::ReadFits(string const & flnm, string & nobj)
    11021120{
    1103 ZSync(*myMutex);
     1121ZSync zs(*myMutex); zs.NOp();
    11041122#ifdef SANS_EVOLPLANCK
    11051123bool ok = false;
     
    11611179void NamedObjMgr::SaveObj(string & nom, POutPersist& s, bool keeppath)
    11621180{
    1163   ZSync(*myMutex);
     1181  ZSync zs(*myMutex); zs.NOp();
    11641182  SaveObj_P(nom, s, keeppath);
    11651183}
     
    11751193NObjMgrAdapter* obja=NULL;
    11761194string nomf = (keeppath) ? nom : nob;
    1177 obja = GetObjAdapter(nom);
     1195obja = GetObjAdapter_P(nom);
    11781196if (obja == NULL)  return;
    11791197printf("NamedObjMgr::SaveObj(%s, )  (Type=%s) \n", 
     
    11861204void NamedObjMgr::SaveObjects(string & patt, string const& flnm)
    11871205{
    1188 ZSync(*myMutex);
     1206ZSync zs(*myMutex); zs.NOp();
    11891207string n1,r1;
    11901208if (patt.length() < 1)  return;
     
    12281246// dont le nom est le dernier argument (liste[n-1])
    12291247{
    1230  ZSync(*myMutex);
     1248 ZSync zs(*myMutex); zs.NOp();
    12311249
    12321250 if(liste.size()<2) {
     
    12601278void NamedObjMgr::SaveAll(string const& flnm)
    12611279{
    1262 ZSync(*myMutex);
     1280ZSync zs(*myMutex); zs.NOp();
    12631281bool ok = true;
    12641282
     
    12931311void NamedObjMgr::SaveFits(string& nom, string const & flnm)
    12941312{
    1295 ZSync(*myMutex);
     1313ZSync zs(*myMutex); zs.NOp();
    12961314
    12971315NObjMgrAdapter* obja=NULL;
    1298 obja = GetObjAdapter(nom);
     1316obja = GetObjAdapter_P(nom);
    12991317if (obja == NULL)  return;
    13001318cout << "  SaveFits: Object" << nom << " to FITS file " << flnm << endl;
     
    13081326void NamedObjMgr::PrintObj(string& nom)
    13091327{
    1310 ZSync(*myMutex);
     1328ZSync zs(*myMutex); zs.NOp();
    13111329NObjMgrAdapter* obja=NULL;
    1312 obja = GetObjAdapter(nom);
     1330obja = GetObjAdapter_P(nom);
    13131331if (obja == NULL)  return;
    13141332AnyDataObj* ob = obja->GetDataObj();
     
    13301348if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return;
    13311349
    1332 ZSync(*myMutex);
     1350ZSync zs(*myMutex); zs.NOp();
    13331351
    13341352NObjMgrAdapter* obja=NULL;
    1335 obja = GetObjAdapter(nom);
     1353obja = GetObjAdapter_P(nom);
    13361354if (obja == NULL) {
    13371355  cout << "NamedObjMgr::DisplayObj() Error , No object with name " << nom << endl;
     
    13801398if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return;
    13811399
    1382 ZSync(*myMutex);
     1400ZSync zs(*myMutex); zs.NOp();
    13831401
    13841402NObjMgrAdapter* obja=NULL;
    1385 obja = GetObjAdapter(nom);
     1403obja = GetObjAdapter_P(nom);
    13861404if (obja == NULL) {
    13871405  cout << "NamedObjMgr::DisplayImage() Error , No such object " << nom << endl;
     
    14201438if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return;
    14211439
    1422 ZSync(*myMutex);
     1440ZSync zs(*myMutex); zs.NOp();
    14231441
    14241442NObjMgrAdapter* obja=NULL;
    1425 obja = GetObjAdapter(nom);
     1443obja = GetObjAdapter_P(nom);
    14261444if (obja == NULL) {
    14271445  cout << "NamedObjMgr::DisplaySurf3D() Error , No such object " << nom << endl;
     
    14701488if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return;
    14711489
    1472 ZSync(*myMutex);
    1473 
    1474 AnyDataObj* obj=GetObj(nom);
     1490ZSync zs(*myMutex); zs.NOp();
     1491
     1492AnyDataObj* obj=GetObj_P(nom);
    14751493if (obj == NULL) {
    14761494  cout << "NamedObjMgr::DisplayNT() Error , No such object " << nom << endl;
     
    15361554if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return;
    15371555
    1538 ZSync(*myMutex);
    1539 
    1540 AnyDataObj* obj=GetObj(nom);
     1556ZSync zs(*myMutex); zs.NOp();
     1557
     1558AnyDataObj* obj=GetObj_P(nom);
    15411559if(obj == NULL)
    15421560  {cout << "NamedObjMgr::DisplayGFD() Error , No such object " << nom << endl;
     
    15921610if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return;
    15931611
    1594 ZSync(*myMutex);
     1612ZSync zs(*myMutex); zs.NOp();
    15951613
    15961614#ifdef SANS_EVOLPLANCK
     
    16011619
    16021620AnyDataObj* obj;
    1603 obj = GetObj(nomvx);
     1621obj = GetObj_P(nomvx);
    16041622if(obj == NULL) {
    16051623  cout << "NamedObjMgr::DisplayVector() Error , No such object " << nomvx << endl;
     
    16131631}
    16141632
    1615 obj = GetObj(nomvy);
     1633obj = GetObj_P(nomvy);
    16161634if(obj == NULL) {
    16171635  cout << "NamedObjMgr::DisplayVector() Error , No such object " << nomvy << endl;
     
    17061724{
    17071725if (!myImgApp)  return;
    1708 ZSync(*myMutex);
     1726ZSync zs(*myMutex); zs.NOp();
    17091727if ( !_fgimgapp )  myImgApp->LockMutex();
    17101728
Note: See TracChangeset for help on using the changeset viewer.