Changeset 3366 in Sophya for trunk/SophyaPI/PIext
- Timestamp:
- Oct 30, 2007, 1:57:40 PM (18 years ago)
- Location:
- trunk/SophyaPI/PIext
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/PIext/nobjmgr.cc
r3355 r3366 98 98 // Pour gestion multithread 99 99 static ZMutex* myMutex = NULL; 100 static bool myMtxLocked = false; // if myMutex has been locked 101 static bool obmWvis = false; // true -> ObjMgrWindow() is active/visible 102 static bool obmWUpdReq = false; // true -> ObjMgrWindow Update requested 100 103 // .................................................................. 104 // .... Classe NObjMgrSync .... 105 class NObjMgrSync { 106 public: 107 explicit NObjMgrSync(int sigbr) 108 { 109 myMtxLocked = true; 110 myMutex->lock(); 111 _sigbr = sigbr; 112 } 113 ~NObjMgrSync() 114 { 115 if (_sigbr == 1) myMutex->signal(); 116 else if (_sigbr == 2) myMutex->broadcast(); 117 myMutex->unlock(); 118 myMtxLocked = false; 119 if (obmWUpdReq) { 120 NamedObjMgr _momg; 121 _momg.UpdateObjMgrWindow(-1); 122 } 123 } 124 inline int NOp() { return _sigbr; } 125 126 int _sigbr; 127 }; 128 //............................. 101 129 102 130 //++ … … 229 257 return(false); 230 258 } 231 ZSync zs(*myMutex); zs.NOp();259 NObjMgrSync zs(0); zs.NOp(); 232 260 #ifdef SANS_EVOLPLANCK 233 261 bool fg = true; … … 247 275 return(false); 248 276 } 249 ZSync zs(*myMutex); zs.NOp();277 NObjMgrSync zs(0); zs.NOp(); 250 278 #ifdef SANS_EVOLPLANCK 251 279 DVList::ValList::const_iterator it; … … 265 293 return(false); 266 294 } 267 ZSync zs(*myMutex); zs.NOp();295 NObjMgrSync zs(0); zs.NOp(); 268 296 #ifdef SANS_EVOLPLANCK 269 297 return(false); … … 280 308 return(""); 281 309 } 282 ZSync zs(*myMutex); zs.NOp();310 NObjMgrSync zs(0); zs.NOp(); 283 311 // cout << " DEBUG::GetVar " << *myVars << endl; 284 312 return(myVars->GetS(key)); … … 289 317 { 290 318 // cout << " DEBUG::GetVarList " << *myVars << endl; 291 ZSync zs(*myMutex); zs.NOp();319 NObjMgrSync zs(0); zs.NOp(); 292 320 return(*myVars); 293 321 } … … 296 324 bool NamedObjMgr::CreateDir(string & dirname) 297 325 { 298 ZSync zs(*myMutex); zs.NOp();326 NObjMgrSync zs(0); zs.NOp(); 299 327 return CreateDir_P(dirname); 300 328 } … … 336 364 return(false); 337 365 } 338 ZSync zs(*myMutex); zs.NOp();366 NObjMgrSync zs(0); zs.NOp(); 339 367 NObjDirList::iterator it = myDirs->find(dirname); 340 368 if (it == myDirs->end()) { … … 357 385 if (myImgApp) { 358 386 if ( !_fgimgapp ) myImgApp->LockMutex(); 387 if ((myImgApp->ObjMgrW())->GetCurDirId() == (*it).second.id) { 388 (myImgApp->ObjMgrW())->SetCurDir(*currDir); 389 obmWUpdReq = true; 390 } 359 391 (myImgApp->ObjMgrW())->DelDirectory((*it).second.id); 392 360 393 if ( !_fgimgapp ) myImgApp->UnlockMutex(true); 361 394 } … … 368 401 void NamedObjMgr::LockDir(string & dirname) 369 402 { 370 ZSync zs(*myMutex); zs.NOp();403 NObjMgrSync zs(0); zs.NOp(); 371 404 if ( !CheckDirName(dirname) ) return; 372 405 NObjDirList::iterator it = myDirs->find(dirname); … … 380 413 void NamedObjMgr::UnlockDir(string & dirname) 381 414 { 382 ZSync zs(*myMutex); zs.NOp();415 NObjMgrSync zs(0); zs.NOp(); 383 416 if ( !CheckDirName(dirname) ) return; 384 417 NObjDirList::iterator it = myDirs->find(dirname); … … 392 425 void NamedObjMgr::SetKeepOldDirAtt(string & dirname, bool keepold) 393 426 { 394 ZSync zs(*myMutex); zs.NOp();427 NObjMgrSync zs(0); zs.NOp(); 395 428 if ( !CheckDirName(dirname) ) return; 396 429 NObjDirList::iterator it = myDirs->find(dirname); … … 408 441 bool NamedObjMgr::SetCurrentDir(string & dirname) 409 442 { 410 ZSync zs(*myMutex); zs.NOp();443 NObjMgrSync zs(0); zs.NOp(); 411 444 if ( !CheckDirName(dirname) ) { 412 445 cout << "NamedObjMgr::SetCurrentDir( " << dirname << ") Error - Invalid name !" << endl; … … 426 459 void NamedObjMgr::GetCurrentDir(string & dirname) 427 460 { 428 ZSync zs(*myMutex); zs.NOp();461 NObjMgrSync zs(0); zs.NOp(); 429 462 dirname = *currDir; 430 463 } … … 433 466 void NamedObjMgr::ListDirs(string & patt) 434 467 { 435 ZSync zs(*myMutex); zs.NOp();468 NObjMgrSync zs(0); zs.NOp(); 436 469 NObjDirList::iterator it; 437 470 string cn; … … 453 486 void NamedObjMgr::GetDirList(string & patt, vector<string>& lstd) 454 487 { 455 ZSync zs(*myMutex); zs.NOp();488 NObjMgrSync zs(0); zs.NOp(); 456 489 NObjDirList::iterator it; 457 490 string cn; … … 466 499 void NamedObjMgr::CleanDir(string & dirname) 467 500 { 468 ZSync zs(*myMutex); zs.NOp();501 NObjMgrSync zs(0); zs.NOp(); 469 502 CleanDir_P(dirname); 470 503 } … … 499 532 for(ii=odel.begin(); ii != odel.end(); ii++) DelObj_P(*ii,true); 500 533 501 UpdateObjMgrWindow_P(did); // On met a jour la fenetre de gestion des objets 534 if (obmWvis) UpdateObjMgrWindow_P(did); // On met a jour la fenetre de gestion des objets 502 535 } 503 536 … … 529 562 bool NamedObjMgr::AddObj(AnyDataObj* obj, string & nom, bool crd) 530 563 { 531 ZSync zs(*myMutex); zs.NOp();564 NObjMgrSync zs(0); zs.NOp(); 532 565 return AddObj_P(obj, nom, crd); 533 566 } … … 605 638 (*itr).second.nobj++; 606 639 607 if ( myImgApp != NULL) {640 if (obmWvis && (myImgApp != NULL)) { 608 641 if ( !_fgimgapp ) myImgApp->LockMutex(); 609 642 if ( (myImgApp->ObjMgrW())->Visible() ) { … … 620 653 bool NamedObjMgr::AddObj(AnyDataObj& obj, string & nom, bool crd) 621 654 { 622 ZSync zs(*myMutex); zs.NOp();655 NObjMgrSync zs(0); zs.NOp(); 623 656 NObjMgrAdapter* adap = GetServiceObj()->GetAdapter(&obj); 624 657 if (adap == NULL) { … … 638 671 bool NamedObjMgr::RenameObj(string & nom, string& nomnew) 639 672 { 640 ZSync zs(*myMutex); zs.NOp();673 NObjMgrSync zs(0); zs.NOp(); 641 674 return RenameObj_P(nom, nomnew); 642 675 } … … 689 722 (*itr).second.nobj++; 690 723 691 if ( myImgApp != NULL) {724 if (obmWvis && (myImgApp != NULL)) { 692 725 if ( !_fgimgapp ) myImgApp->LockMutex(); 693 726 if ( (myImgApp->ObjMgrW())->Visible() ) { … … 706 739 bool NamedObjMgr::CopyObj(string & nom, string& nomcp) 707 740 { 708 ZSync zs(*myMutex); zs.NOp();741 NObjMgrSync zs(0); zs.NOp(); 709 742 if(nomcp.length()<=0) 710 743 {cout<<"NamedObjMgr::CopyObj() Error, copied obj name "<<nomcp<<" not valid"<<endl; … … 723 756 bool NamedObjMgr::DelObj(string & nom, bool fgd) 724 757 { 725 ZSync zs(*myMutex); zs.NOp();758 NObjMgrSync zs(0); zs.NOp(); 726 759 return DelObj_P(nom, fgd); 727 760 } … … 753 786 if (fgd) delete (*it).second.obj; 754 787 755 if ( myImgApp != NULL) {788 if (obmWvis && (myImgApp != NULL)) { 756 789 if ( !_fgimgapp ) myImgApp->LockMutex(); 757 790 if ( (myImgApp->ObjMgrW())->Visible() ) { … … 774 807 bool NamedObjMgr::DelObj_Id(int oid) 775 808 { 776 ZSync zs(*myMutex); zs.NOp();809 NObjMgrSync zs(0); zs.NOp(); 777 810 NObjList::iterator it; 778 811 string nom; … … 790 823 void NamedObjMgr::DelObjects(string & patt, bool fgd) 791 824 { 792 ZSync zs(*myMutex); zs.NOp();825 NObjMgrSync zs(0); zs.NOp(); 793 826 string n1,r1; 794 827 ParseObjectName(patt, r1, n1); … … 808 841 AnyDataObj* NamedObjMgr::GetObj(string & nom) 809 842 { 810 ZSync zs(*myMutex); zs.NOp();843 NObjMgrSync zs(0); zs.NOp(); 811 844 return GetObj_P(nom); 812 845 } … … 826 859 NObjMgrAdapter* NamedObjMgr::GetObjAdapter(string & nom) 827 860 { 828 ZSync zs(*myMutex); zs.NOp();861 NObjMgrSync zs(0); zs.NOp(); 829 862 return GetObjAdapter_P(nom); 830 863 } … … 844 877 void NamedObjMgr::ListObjs(string & patt) 845 878 { 846 ZSync zs(*myMutex); zs.NOp();879 NObjMgrSync zs(0); zs.NOp(); 847 880 int k; 848 881 AnyDataObj* obj=NULL; … … 873 906 void NamedObjMgr::GetObjList(string & patt, vector<string> &lst) 874 907 { 875 ZSync zs(*myMutex); zs.NOp();908 NObjMgrSync zs(0); zs.NOp(); 876 909 string n1,r1; 877 910 if (patt.length() < 1) return; … … 909 942 void NamedObjMgr::ReadObj(string const & flnm, string & nobj) 910 943 { 911 ZSync zs(*myMutex); zs.NOp();912 944 PPersist* ppobj=NULL; 913 945 bool ok = true; … … 932 964 if (!ok) return; 933 965 if (nobj.length()<1) nobj = servnobjm->FileName2Name(flnm); 934 AddObj _P(ppobj->DataObj(), nobj, true);966 AddObj(ppobj->DataObj(), nobj, true); 935 967 cout << "NamedObjMgr::ReadObj(...) object " << nobj << " read from file " << endl; 936 968 return; … … 942 974 { 943 975 if(flnm_objname.size()<2) return; 944 ZSync zs(*myMutex); zs.NOp();945 976 int nread=0; 946 977 try { … … 957 988 continue; 958 989 } 959 AddObj _P(ppobj->DataObj(),flnm_objname[i],true);990 AddObj(ppobj->DataObj(),flnm_objname[i],true); 960 991 nread++; 961 992 cout<<"NamedObjMgr::ReadObj(...) object "<<flnm_objname[i]<<" read from file "<<endl; … … 971 1002 void NamedObjMgr::ReadObj(PInPersist& s, int num) 972 1003 { 973 ZSync zs(*myMutex); zs.NOp();1004 NObjMgrSync zs(0); zs.NOp(); 974 1005 ReadObj_P(s, num); 975 1006 } … … 1060 1091 void NamedObjMgr::ReadAll(string const & flnm) 1061 1092 { 1062 ZSync zs(*myMutex); zs.NOp();1063 1093 #ifdef SANS_EVOLPLANCK 1064 1094 bool ok = true; … … 1077 1107 if (obj) { 1078 1108 string nom = servnobjm->FileName2Name(flnm); 1079 AddObj _P(obj->DataObj(), nom, false);1080 } 1081 else ReadObj _P((*ppin), -1);1109 AddObj(obj->DataObj(), nom, false); 1110 } 1111 else ReadObj((*ppin), -1); 1082 1112 delete ppin; 1083 1113 #else … … 1091 1121 cout << " ... Reading " << pis.NbNameTags() << " objects at NameTags " ; 1092 1122 } 1093 ReadObj _P(pis, -1);1123 ReadObj(pis, -1); 1094 1124 return; 1095 1125 } … … 1100 1130 PPersist* obj = pis.ReadObject(); 1101 1131 if (!obj) continue; 1102 AddObj _P(obj->DataObj(), nom, false);1132 AddObj(obj->DataObj(), nom, false); 1103 1133 kn++; 1104 1134 nom += (string)MuTyV(kn); … … 1116 1146 void NamedObjMgr::SaveObj(string & nom, POutPersist& s, bool keeppath) 1117 1147 { 1118 ZSync zs(*myMutex); zs.NOp();1148 NObjMgrSync zs(0); zs.NOp(); 1119 1149 SaveObj_P(nom, s, keeppath); 1120 1150 } … … 1141 1171 void NamedObjMgr::SaveObjects(string & patt, string const& flnm) 1142 1172 { 1143 ZSync zs(*myMutex); zs.NOp();1173 NObjMgrSync zs(0); zs.NOp(); 1144 1174 string n1,r1; 1145 1175 if (patt.length() < 1) return; … … 1183 1213 // dont le nom est le dernier argument (liste[n-1]) 1184 1214 { 1185 ZSync zs(*myMutex); zs.NOp();1215 NObjMgrSync zs(0); zs.NOp(); 1186 1216 1187 1217 if(liste.size()<2) { … … 1215 1245 void NamedObjMgr::SaveAll(string const& flnm) 1216 1246 { 1217 ZSync zs(*myMutex); zs.NOp();1247 NObjMgrSync zs(0); zs.NOp(); 1218 1248 bool ok = true; 1219 1249 … … 1250 1280 void NamedObjMgr::PrintObj(string& nom, int lev) 1251 1281 { 1252 ZSync zs(*myMutex); zs.NOp();1282 NObjMgrSync zs(0); zs.NOp(); 1253 1283 NObjMgrAdapter* obja=NULL; 1254 1284 obja = GetObjAdapter_P(nom); … … 1272 1302 if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return; 1273 1303 1274 ZSync zs(*myMutex); zs.NOp();1304 NObjMgrSync zs(0); zs.NOp(); 1275 1305 1276 1306 NObjMgrAdapter* obja=NULL; … … 1322 1352 if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return; 1323 1353 1324 ZSync zs(*myMutex); zs.NOp();1354 NObjMgrSync zs(0); zs.NOp(); 1325 1355 1326 1356 NObjMgrAdapter* obja=NULL; … … 1362 1392 if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return; 1363 1393 1364 ZSync zs(*myMutex); zs.NOp();1394 NObjMgrSync zs(0); zs.NOp(); 1365 1395 1366 1396 NObjMgrAdapter* obja=NULL; … … 1412 1442 if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return; 1413 1443 1414 ZSync zs(*myMutex); zs.NOp();1444 NObjMgrSync zs(0); zs.NOp(); 1415 1445 1416 1446 AnyDataObj* obj=GetObj_P(nom); … … 1482 1512 if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return; 1483 1513 1484 ZSync zs(*myMutex); zs.NOp();1514 NObjMgrSync zs(0); zs.NOp(); 1485 1515 1486 1516 AnyDataObj* obj=GetObj_P(nom); … … 1538 1568 if ( (dopt == "nodisp") || (dopt == "nodisplay") ) return; 1539 1569 1540 ZSync zs(*myMutex); zs.NOp();1570 NObjMgrSync zs(0); zs.NOp(); 1541 1571 1542 1572 #ifdef SANS_EVOLPLANCK … … 1640 1670 int NamedObjMgr::NameToOId(string & nom) 1641 1671 { 1642 ZSync zs(*myMutex); zs.NOp();1672 NObjMgrSync zs(0); zs.NOp(); 1643 1673 return NameToOId_P(nom); 1644 1674 } … … 1659 1689 void NamedObjMgr::AddWRsId(string & nom, int wrsid) 1660 1690 { 1661 ZSync zs(*myMutex); zs.NOp();1691 NObjMgrSync zs(0); zs.NOp(); 1662 1692 AddWRsId_P(nom, wrsid); 1663 1693 } … … 1678 1708 { 1679 1709 if (!myImgApp) return; 1680 ZSync zs(*myMutex); zs.NOp(); 1710 if (myMtxLocked) { 1711 obmWUpdReq = true; 1712 obmWvis = false; 1713 (myImgApp->ObjMgrW())->SetUnSensitive(); 1714 return; 1715 } 1716 NObjMgrSync zs(0); zs.NOp(); 1717 if (did < 0) { 1718 string cdir = *currDir; 1719 cdir = '/' + cdir; 1720 (myImgApp->ObjMgrW())->SetCurDir(cdir); 1721 did = (myImgApp->ObjMgrW())->GetCurDirId(); 1722 } 1723 1681 1724 UpdateObjMgrWindow_P(did); 1725 (myImgApp->ObjMgrW())->SetSensitive(); 1726 obmWUpdReq = false; 1727 obmWvis = true; 1728 } 1729 1730 /* --Methode-- */ 1731 void NamedObjMgr::SetObjMgrWindowVisibility(bool fgvis) 1732 { 1733 obmWvis = fgvis; 1682 1734 } 1683 1735 -
trunk/SophyaPI/PIext/nobjmgr.h
r3355 r3366 108 108 // Pour utilisation par ObjMgrWind 109 109 virtual void UpdateObjMgrWindow(int did); 110 virtual void SetObjMgrWindowVisibility(bool fgvis=false); 110 111 111 112 // Pour completer le nom de l'objet avec le nom du repertoire -
trunk/SophyaPI/PIext/piacmd.cc
r2999 r3366 401 401 Commander::ShowMessage(msg, att); 402 402 } 403 404 405 /* --Methode-- */ 406 SOpExObj::SOpExObj(PIStdImgApp* app) 407 { 408 mImgApp = app; 409 fg_thrstop = false; 410 fg_threxe = false; 411 } 412 413 /* --Methode-- */ 414 SOpExObj::~SOpExObj() 415 { 416 } 417 418 /* --Methode-- */ 419 void SOpExObj::AddOpe(string const & line) 420 { 421 mutx_inps.lock(); 422 inputlines.push(line); // Ajout d'un element en fin de queue 423 mutx_inps.unlock(); 424 mutx_inps.broadcast(); 425 } 426 427 /* --Methode-- */ 428 void SOpExObj::run() 429 { 430 NamedObjMgr omg; 431 while (!fg_thrstop) { 432 mutx_inps.lock(); 433 while (inputlines.empty()) { 434 fg_threxe = false; 435 mutx_inps.wait(); 436 } 437 string cmd = inputlines.front().substr(0,3); // On recupere l'element de tete 438 string nom = inputlines.front().substr(4); // On recupere l'element de tete 439 inputlines.pop(); // On supprime l'element de tete 440 fg_threxe = true; 441 mutx_inps.unlock(); 442 try { 443 if (cmd == "SCO") { // set cobj 444 string ss = "set cobj "; 445 ss += nom; 446 cout << " Defining cobj : " << ss << endl; 447 mImgApp->CmdInterpreter()->AddInputLine(ss); 448 } 449 else if (cmd == "DIS") { // display obj 450 omg.DisplayObj(nom); 451 } 452 else if (cmd == "PRT") { // print obj 453 omg.PrintObj(nom); 454 } 455 else if (cmd == "DEL") { // delete obj 456 omg.DelObj(nom); 457 } 458 else if (cmd == "SAV") { // saveppf obj 459 if (mImgApp->mPpfout) omg.SaveObj(nom, *(mImgApp->mPpfout), false); 460 } 461 else cerr << "SOpExObj::run() ERROR CMD= " << cmd << endl; 462 } 463 catch (PThrowable& pex) { // Catching SOPHYA exceptions 464 cerr << "SOpExObj::run() SOPHYA exception CMD=" << cmd << " NOM=" << nom << "\n" 465 << (string)typeid(pex).name() << " Msg= " << pex.Msg() << endl; 466 } 467 catch (std::exception& sex) { 468 cerr << "SOpExObj::run() std::exception CMD=" << cmd << " NOM=" << nom << "\n" 469 << (string)typeid(sex).name() << " Msg= " << sex.what() << endl; 470 } 471 catch (...) { 472 cerr << "SOpExObj::run() unknown exception (...) CMD=" 473 << cmd << " NOM=" << nom << endl; 474 } 475 } 476 } -
trunk/SophyaPI/PIext/piacmd.h
r2999 r3366 100 100 101 101 102 // 103 // --------------------------------------------------------------------- 104 // Classe d'execution d'operations simples, comme affichage (display) 105 // print , del ... issues en particulier de la boucle d'evts 106 // (PIStdImgApp, ObjMgrWind , ...) 107 // --------------------------------------------------------------------- 108 109 class SOpExObj : public ZThread { 110 public: 111 SOpExObj(PIStdImgApp* app); 112 virtual ~SOpExObj(); 113 114 // Thread execution <ZThread> 115 virtual void run(); 116 void AddOpe(string const & line); 117 void StopThread(); 118 119 protected: 120 PIStdImgApp* mImgApp; 121 queue<string> inputlines; 122 ZMutex mutx_inps; 123 bool fg_thrstop; 124 bool fg_threxe; 125 }; 126 127 128 102 129 103 130 #endif -
trunk/SophyaPI/PIext/pisiadw.cc
r2778 r3366 72 72 { 73 73 PIWindow::Show(); 74 string cdir; 75 dap->ObjMgr()->GetCurrentDir(cdir); 76 cdir = '/' + cdir; 77 dirlist->SetValueStr(cdir); 78 dap->ObjMgr()->UpdateObjMgrWindow( GetCurDirId() ); 79 return; 80 } 81 74 dap->ObjMgr()->UpdateObjMgrWindow( -1 ); 75 return; 76 } 77 /* --Methode-- */ 78 void ObjMgrWind::Hide() 79 { 80 dap->ObjMgr()->SetObjMgrWindowVisibility(false); 81 PIWindow::Hide(); 82 return; 83 } 82 84 83 85 /* --Methode-- */ … … 122 124 if (nom.length() < 1) return; 123 125 126 string cmd; 124 127 switch (msg) 125 128 { 126 129 case 10: 127 { 128 string cmd = "set cobj " + nom ; 129 cout << " Setting current object ($cobj) to " << nom << endl; 130 dap->CmdInterpreter()->Interpret(cmd); 131 } 130 cmd = "SCO " + nom; 132 131 break; 133 132 case 20: 134 om->DisplayObj(nom);133 cmd = "DIS " + nom; 135 134 break; 136 135 case 30: 137 om->PrintObj(nom);136 cmd = "PRT " + nom; 138 137 break; 139 138 case 40: 140 if (dap->mPpfout) om->SaveObj(nom, *(dap->mPpfout), false);139 cmd = "SAV " + nom; 141 140 break; 142 141 case 50: 143 om->DelObj(nom); 144 // objlist->DeleteItemMsg(objlist->GetSelection()); 145 // dap->ObjMgr()->UpdateObjMgrWindow(dirlist->GetValue()-30000); 142 cmd = "DEL " + nom; 146 143 break; 147 144 … … 150 147 break; 151 148 } 152 149 dap->getSOpExObj()->AddOpe(cmd); 153 150 return; 154 151 } … … 158 155 { 159 156 if (!Visible()) return; 160 if ( did != GetCurDirId() ) return;157 if ( (did >0) &&(did != GetCurDirId()) ) return; 161 158 dap->ObjMgr()->UpdateObjMgrWindow(did); 162 159 return; -
trunk/SophyaPI/PIext/pisiadw.h
r2762 r3366 29 29 ~ObjMgrWind(); 30 30 virtual void Show(); 31 virtual void Hide(); 31 32 virtual void Process(PIMessage msg, PIMsgHandler* sender, void* data=NULL); 32 33 inline void AddDirectory(const char * dir, int did) … … 39 40 { mNitem++; objlist->AppendItem(objn, oid); } 40 41 inline int GetCurDirId() { return (dirlist->GetValue()-30000); } 42 43 inline void SetCurDir(string & cd) { dirlist->SetValueStr(cd); } 41 44 42 45 virtual void UpdateList(int did); -
trunk/SophyaPI/PIext/pistdimgapp.cc
r3355 r3366 237 237 fg_exc_cmd = false; 238 238 mCmd = NULL; // Avant d'appeler UpdateStatResource() si PIACmd non cree 239 mSopex = NULL; 239 240 UpdateStatResourceInfo(); 240 241 resupd_periodic = new SIA_RU__Periodic(this); … … 263 264 mObjMgr = new NamedObjMgr(true); 264 265 mCmd = new PIACmd(this); 266 mSopex = new SOpExObj(this); 265 267 266 268 // Pas trop de message de la part de NamedObjMgr … … 468 470 // Demarrage du thread de l'interpreteur 469 471 CmdInterpreter()->start(); 470 472 // Demarrage du thread de l'executeur de commandes simples 473 getSOpExObj()->start(); 471 474 472 475 … … 2018 2021 case 10270 : 2019 2022 if (mCurWdg) { 2020 int oid = mCurWdg->UserFlag();2021 //RZDEL-Mai2005 DeleteWidget(mCurWdg);2022 mObjMgr->DelObj_Id(oid);2023 string ssob = "DEL "; 2024 ssob += mCurWdg->Nom(); 2025 getSOpExObj()->AddOpe(ssob); 2023 2026 } 2024 2027 break; -
trunk/SophyaPI/PIext/pistdimgapp.h
r3355 r3366 127 127 inline NamedObjMgr* ObjMgr() { return mObjMgr; } 128 128 inline PIACmd* CmdInterpreter() { return mCmd; } 129 inline SOpExObj* getSOpExObj() { return mSopex; } 129 130 130 131 PIWindow* CurrentWindow() { return (mCurWin); }; … … 189 190 NamedObjMgr* mObjMgr; 190 191 PIACmd* mCmd; 192 SOpExObj* mSopex; 191 193 192 194 PIMenu* m[7];
Note:
See TracChangeset
for help on using the changeset viewer.