Index: trunk/SophyaPI/PIext/nobjmgr.cc
===================================================================
--- trunk/SophyaPI/PIext/nobjmgr.cc	(revision 2701)
+++ trunk/SophyaPI/PIext/nobjmgr.cc	(revision 2755)
@@ -95,8 +95,8 @@
 static DVList* myVars = NULL;  // Pour stocker les variables
 
-static string* TmpDir;  // Repertoire pour les compilations / link dynamique
+static string* TmpDir = NULL;  // Repertoire pour les compilations / link dynamique
 
 // Pour gestion multithread 
-static ZMutex* myMutex;
+static ZMutex* myMutex = NULL;
 // ..................................................................
 
@@ -122,4 +122,5 @@
   myObjs = new NObjList;  
   myVars = new DVList;
+  myMutex = new ZMutex;
   currDir = new string("home");
   string dirn = "home";
@@ -144,5 +145,4 @@
   if ( (l>0) && ((*TmpDir)[l-1] != '/') )  (*TmpDir) += '/';
   servnobjm = new Services2NObjMgr(*TmpDir);
-  myMutex = new ZMutex;
   }
 fgOInit++;
@@ -230,5 +230,5 @@
     return(false);
   }
-  ZSync(*myMutex);
+  ZSync zs(*myMutex); zs.NOp(); 
 #ifdef SANS_EVOLPLANCK
   bool fg = true;
@@ -248,5 +248,5 @@
     return(false);
   }
-  ZSync(*myMutex);
+  ZSync zs(*myMutex); zs.NOp(); 
 #ifdef SANS_EVOLPLANCK
   DVList::ValList::const_iterator it;
@@ -266,5 +266,5 @@
     return(false);
   }
-  ZSync(*myMutex);
+  ZSync zs(*myMutex); zs.NOp(); 
 #ifdef SANS_EVOLPLANCK
   return(false);
@@ -281,5 +281,5 @@
     return("");
   }
-  ZSync(*myMutex);
+  ZSync zs(*myMutex); zs.NOp(); 
   //  cout << " DEBUG::GetVar " << *myVars << endl;
   return(myVars->GetS(key));
@@ -290,5 +290,5 @@
 {
   //  cout << " DEBUG::GetVarList " << *myVars << endl;
-  ZSync(*myMutex);
+  ZSync zs(*myMutex); zs.NOp(); 
   return(*myVars);
 }
@@ -297,5 +297,5 @@
 bool NamedObjMgr::CreateDir(string & dirname)
 {
-  ZSync(*myMutex);
+  ZSync zs(*myMutex); zs.NOp(); 
   return CreateDir_P(dirname);
 }
@@ -337,5 +337,5 @@
   return(false); 
   }
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 NObjDirList::iterator it = myDirs->find(dirname);
 if (it == myDirs->end()) {
@@ -369,5 +369,5 @@
 void NamedObjMgr::LockDir(string & dirname)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 if ( !CheckDirName(dirname) ) return;
 NObjDirList::iterator it = myDirs->find(dirname);
@@ -381,5 +381,5 @@
 void NamedObjMgr::UnlockDir(string & dirname)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 if ( !CheckDirName(dirname) ) return;
 NObjDirList::iterator it = myDirs->find(dirname);
@@ -393,5 +393,5 @@
 void NamedObjMgr::SetKeepOldDirAtt(string & dirname, bool keepold)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 if ( !CheckDirName(dirname) ) return;
 NObjDirList::iterator it = myDirs->find(dirname);
@@ -409,5 +409,5 @@
 bool NamedObjMgr::SetCurrentDir(string & dirname)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 if ( !CheckDirName(dirname) ) {
   cout << "NamedObjMgr::SetCurrentDir( " << dirname << ") Error - Invalid name !" << endl;
@@ -427,5 +427,5 @@
 void NamedObjMgr::GetCurrentDir(string & dirname)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 dirname = *currDir;
 }
@@ -434,5 +434,5 @@
 void NamedObjMgr::ListDirs(string & patt)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 NObjDirList::iterator it;
 string cn;
@@ -454,5 +454,5 @@
 void NamedObjMgr::GetDirList(string & patt, vector<string>& lstd)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 NObjDirList::iterator it;
 string cn;
@@ -467,5 +467,5 @@
 void NamedObjMgr::CleanDir(string & dirname)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 CleanDir_P(dirname);
 }
@@ -533,5 +533,5 @@
 bool NamedObjMgr::AddObj(AnyDataObj* obj, string & nom, bool crd)
 {
-  ZSync(*myMutex);
+  ZSync zs(*myMutex); zs.NOp(); 
   return AddObj_P(obj, nom, crd);
 }
@@ -625,5 +625,5 @@
 bool NamedObjMgr::AddObj(AnyDataObj& obj, string & nom, bool crd)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 NObjMgrAdapter* adap = GetServiceObj()->GetAdapter(&obj);
 if (adap == NULL) {
@@ -643,5 +643,5 @@
 bool NamedObjMgr::RenameObj(string & nom, string& nomnew)
 {
-  ZSync(*myMutex);
+  ZSync zs(*myMutex); zs.NOp(); 
   return RenameObj_P(nom, nomnew);
 }
@@ -710,9 +710,9 @@
 bool NamedObjMgr::CopyObj(string & nom, string& nomcp)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 if(nomcp.length()<=0)
   {cout<<"NamedObjMgr::CopyObj() Error, copied obj name "<<nomcp<<" not valid"<<endl;
   return(false);}
-NObjMgrAdapter* obnom = GetObjAdapter(nom);
+NObjMgrAdapter* obnom = GetObjAdapter_P(nom);
 if(obnom==NULL)
   {cout<<"NamedObjMgr::CopyObj() Error -  No "<<nom<<" object !"<<endl;
@@ -727,5 +727,5 @@
 bool NamedObjMgr::DelObj(string & nom, bool fgd)
 {
-  ZSync(*myMutex);
+  ZSync zs(*myMutex); zs.NOp(); 
   return DelObj_P(nom, fgd);
 }
@@ -778,5 +778,5 @@
 bool NamedObjMgr::DelObj_Id(int oid)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 NObjList::iterator it;
 string nom;
@@ -794,5 +794,5 @@
 void NamedObjMgr::DelObjects(string & patt, bool fgd)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 string n1,r1;
 ParseObjectName(patt, r1, n1);
@@ -812,5 +812,11 @@
 AnyDataObj* NamedObjMgr::GetObj(string & nom)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
+return GetObj_P(nom);
+}
+
+/* --Methode-- */
+AnyDataObj* NamedObjMgr::GetObj_P(string & nom)
+{
 string n1,r1;
 ParseObjectName(nom, r1, n1);
@@ -824,5 +830,11 @@
 NObjMgrAdapter* NamedObjMgr::GetObjAdapter(string & nom)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
+return GetObjAdapter_P(nom);
+}
+
+/* --Methode-- */
+NObjMgrAdapter* NamedObjMgr::GetObjAdapter_P(string & nom)
+{
 string n1,r1;
 ParseObjectName(nom, r1, n1);
@@ -836,5 +848,5 @@
 void NamedObjMgr::ListObjs(string & patt)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 int k;
 AnyDataObj* obj=NULL;
@@ -865,5 +877,5 @@
 void NamedObjMgr::GetObjList(string & patt, vector<string> &lst)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 string n1,r1;
 if (patt.length() < 1)  return;
@@ -901,5 +913,5 @@
 void NamedObjMgr::ReadObj(string const & flnm, string & nobj)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 PPersist* ppobj=NULL;
 bool ok = true;
@@ -934,5 +946,5 @@
 {
 if(flnm_objname.size()<2) return;
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 int nread=0;
 try {
@@ -963,5 +975,11 @@
 void NamedObjMgr::ReadObj(PInPersist& s, int num)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp();
+ReadObj_P(s, num); 
+}
+
+/* --Methode-- */
+void NamedObjMgr::ReadObj_P(PInPersist& s, int num)
+{
 int_4 i; // $CHECK$ int -> int_4 a cause de TagKey
 #ifdef SANS_EVOLPLANCK
@@ -1046,5 +1064,5 @@
 void NamedObjMgr::ReadAll(string const & flnm)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 #ifdef SANS_EVOLPLANCK
 bool ok = true;
@@ -1065,5 +1083,5 @@
   AddObj_P(obj->DataObj(), nom, false);
   }
-else ReadObj((*ppin), -1);
+else ReadObj_P((*ppin), -1);
 delete ppin;
 #else
@@ -1077,5 +1095,5 @@
       cout << " ... Reading " << pis.NbNameTags() << " objects at NameTags " ;
     }
-    ReadObj(pis, -1);
+    ReadObj_P(pis, -1);
     return;
   }
@@ -1101,5 +1119,5 @@
 void NamedObjMgr::ReadFits(string const & flnm, string & nobj)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 #ifdef SANS_EVOLPLANCK 
 bool ok = false;
@@ -1161,5 +1179,5 @@
 void NamedObjMgr::SaveObj(string & nom, POutPersist& s, bool keeppath)
 {
-  ZSync(*myMutex);
+  ZSync zs(*myMutex); zs.NOp(); 
   SaveObj_P(nom, s, keeppath);
 }
@@ -1175,5 +1193,5 @@
 NObjMgrAdapter* obja=NULL;
 string nomf = (keeppath) ? nom : nob;
-obja = GetObjAdapter(nom);
+obja = GetObjAdapter_P(nom);
 if (obja == NULL)  return;
 printf("NamedObjMgr::SaveObj(%s, )  (Type=%s) \n",  
@@ -1186,5 +1204,5 @@
 void NamedObjMgr::SaveObjects(string & patt, string const& flnm)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 string n1,r1;
 if (patt.length() < 1)  return;
@@ -1228,5 +1246,5 @@
 // dont le nom est le dernier argument (liste[n-1])
 {
- ZSync(*myMutex);
+ ZSync zs(*myMutex); zs.NOp(); 
 
  if(liste.size()<2) {
@@ -1260,5 +1278,5 @@
 void NamedObjMgr::SaveAll(string const& flnm)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 bool ok = true;
 
@@ -1293,8 +1311,8 @@
 void NamedObjMgr::SaveFits(string& nom, string const & flnm)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 
 NObjMgrAdapter* obja=NULL;
-obja = GetObjAdapter(nom);
+obja = GetObjAdapter_P(nom);
 if (obja == NULL)  return;
 cout << "  SaveFits: Object" << nom << " to FITS file " << flnm << endl; 
@@ -1308,7 +1326,7 @@
 void NamedObjMgr::PrintObj(string& nom)
 {
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 NObjMgrAdapter* obja=NULL;
-obja = GetObjAdapter(nom);
+obja = GetObjAdapter_P(nom);
 if (obja == NULL)  return;
 AnyDataObj* ob = obja->GetDataObj();
@@ -1330,8 +1348,8 @@
 if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return;
 
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 
 NObjMgrAdapter* obja=NULL;
-obja = GetObjAdapter(nom);
+obja = GetObjAdapter_P(nom);
 if (obja == NULL) {
   cout << "NamedObjMgr::DisplayObj() Error , No object with name " << nom << endl; 
@@ -1380,8 +1398,8 @@
 if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return;
 
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 
 NObjMgrAdapter* obja=NULL;
-obja = GetObjAdapter(nom);
+obja = GetObjAdapter_P(nom);
 if (obja == NULL) {
   cout << "NamedObjMgr::DisplayImage() Error , No such object " << nom << endl; 
@@ -1420,8 +1438,8 @@
 if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return;
 
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 
 NObjMgrAdapter* obja=NULL;
-obja = GetObjAdapter(nom);
+obja = GetObjAdapter_P(nom);
 if (obja == NULL) {
   cout << "NamedObjMgr::DisplaySurf3D() Error , No such object " << nom << endl; 
@@ -1470,7 +1488,7 @@
 if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return;
 
-ZSync(*myMutex);
-
-AnyDataObj* obj=GetObj(nom);
+ZSync zs(*myMutex); zs.NOp(); 
+
+AnyDataObj* obj=GetObj_P(nom);
 if (obj == NULL) {
   cout << "NamedObjMgr::DisplayNT() Error , No such object " << nom << endl; 
@@ -1536,7 +1554,7 @@
 if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return;
 
-ZSync(*myMutex);
-
-AnyDataObj* obj=GetObj(nom);
+ZSync zs(*myMutex); zs.NOp(); 
+
+AnyDataObj* obj=GetObj_P(nom);
 if(obj == NULL)
   {cout << "NamedObjMgr::DisplayGFD() Error , No such object " << nom << endl; 
@@ -1592,5 +1610,5 @@
 if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return;
 
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 
 #ifdef SANS_EVOLPLANCK
@@ -1601,5 +1619,5 @@
 
 AnyDataObj* obj;
-obj = GetObj(nomvx);
+obj = GetObj_P(nomvx);
 if(obj == NULL) {
   cout << "NamedObjMgr::DisplayVector() Error , No such object " << nomvx << endl; 
@@ -1613,5 +1631,5 @@
 }
 
-obj = GetObj(nomvy);
+obj = GetObj_P(nomvy);
 if(obj == NULL) {
   cout << "NamedObjMgr::DisplayVector() Error , No such object " << nomvy << endl; 
@@ -1706,5 +1724,5 @@
 {
 if (!myImgApp)  return;
-ZSync(*myMutex);
+ZSync zs(*myMutex); zs.NOp(); 
 if ( !_fgimgapp )  myImgApp->LockMutex();
 
