]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
Change functionality of VISU::Mutex class
authorsmh <smh@opencascade.com>
Tue, 20 Apr 2004 05:50:01 +0000 (05:50 +0000)
committersmh <smh@opencascade.com>
Tue, 20 Apr 2004 05:50:01 +0000 (05:50 +0000)
src/VISU_I/VISUConfig.cc
src/VISU_I/VISUConfig.hh
src/VISU_I/VISU_Gen_i.cc
src/VISU_I/VISU_Gen_i.hh

index e2229e199f405e8d644881d3278618b75b87c0da..65c7f5f8623f62fed557cd7395451fd2bc76f133 100644 (file)
@@ -58,32 +58,16 @@ namespace VISU{
 
   //===========================================================================
   static int mySCnt = 0;
-  static int myQCnt = 0;
-  static int myIsBatchMode = 0;
 
-  Mutex::Mutex(QMutex* theMutex, QApplication* theQApp, int theDelay) :
-    myQApp(theQApp), isQAppLocked(theQApp->locked()), myDelay(theDelay),
-    myMutex(theMutex), isSessionLocked(theMutex->locked())
-  {
-    if(MYDEBUG) MESSAGE("Mutex::Mutex : "<<(!isQAppLocked && !myQCnt)<<" "<<(!isSessionLocked && !mySCnt));
-    if(!myIsBatchMode && isQAppLocked) myIsBatchMode++;
-    if(!isSessionLocked && !mySCnt) { myMutex->lock();}; mySCnt++;
-    if(!isQAppLocked && !myQCnt) { 
-      myQApp->lock(); 
-      myQApp->syncX();
-    };
-    myQCnt++;
+  Mutex::Mutex(QMutex* theMutex): myMutex(theMutex){
+    if(MYDEBUG) MESSAGE("Mutex::Mutex : "<<!mySCnt);
+    if(!mySCnt++) 
+      myMutex->lock();
   }
   Mutex::~Mutex(){
-    myQCnt--; 
-    if(!isQAppLocked && !myQCnt) { 
-      myQApp->flushX(); 
-      //if(myDelay > 0)
-       myQApp->processEvents(myDelay+3);
-      myQApp->unlock();
-    }
-    mySCnt--; if(!isSessionLocked && !mySCnt) { myMutex->unlock();}
-    if(MYDEBUG) MESSAGE("Mutex::~Mutex : "<<(!isQAppLocked && !myQCnt)<<" "<<(!isSessionLocked && !mySCnt));
+    if(!(--mySCnt))
+      myMutex->unlock();
+    if(MYDEBUG) MESSAGE("Mutex::~Mutex : "<<!mySCnt);
   }
 
 
index dd9f4c6afe8b6a4c889fad6e96f5e21eb5be5bc6..6249c6518f1a8ff02e0df7b926a27d2a9c3c1597 100644 (file)
@@ -86,10 +86,9 @@ namespace VISU{
   //===========================================================================
   class Mutex{
     QMutex* myMutex;
-    QApplication* myQApp;
-    int isQAppLocked, isSessionLocked, myDelay;
+    int isQAppLocked;
   public:
-    Mutex(QMutex* theMutex, QApplication* theQApp, int theDelay = 0);
+    Mutex(QMutex* theMutex);
     ~Mutex();
   };
 
index cbf11b9e0b9b170fd13050d428cb56890b8b6162..c2b6e782b620bd937430b94d9c9e8a5b0381f272 100644 (file)
@@ -170,7 +170,7 @@ namespace VISU{
     Engines_Component_i()
   {
     if(MYDEBUG) MESSAGE("VISU_Gen_i::VISU_Gen_i : "<<theMutex);
-    Mutex mt(theMutex,qApp);
+    Mutex mt(theMutex);
     Base_i::myMutex = theMutex;  //apo
     Base_i::myOrb = CORBA::ORB::_duplicate(theORB);
     Base_i::myPoa = PortableServer::POA::_duplicate(thePOA);
@@ -202,7 +202,7 @@ namespace VISU{
   {
     if(MYDEBUG) MESSAGE("VISU_Gen_i::Load - myMutex = "<<myMutex);
     if(myMutex){
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       SALOMEDS::Study_var aStudy = theComponent->GetStudy(); 
       SALOMEDS::StudyBuilder_var  aStudyBuilder = aStudy->NewBuilder(); 
       TCollection_AsciiString aTmpDir =
@@ -232,7 +232,7 @@ namespace VISU{
     if(myMutex){
       CORBA::String_var aString("");
       if(strcmp(aLocalPersistentID,"") != 0) {
-       Mutex mt(myMutex,qApp);
+       Mutex mt(myMutex);
        Storable* aStorable =
          Storable::Create(theSObject,VisuTmpDir.c_str(),aLocalPersistentID);
        if(aStorable != NULL) aString = aStorable->GetID();
@@ -248,7 +248,7 @@ namespace VISU{
   {
     if(MYDEBUG) MESSAGE("VISU_Gen_i::Save - myMutex = "<<myMutex);
     if(myMutex){
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       TCollection_AsciiString aTmpDir = isMultiFile? strdup(theURL): SALOMEDS_Tool::GetTmpDir();
       if(MYDEBUG) MESSAGE("VISU_Gen_i::Save - "<<aTmpDir);
       int aCounter = 0;
@@ -300,7 +300,7 @@ namespace VISU{
                                      bool isMultiFile) {
     if(MYDEBUG) MESSAGE("VISU_Gen_i::Save - myMutex = "<<myMutex);
     if(myMutex){
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       CORBA::String_var aString = SALOMEDS_Tool::GetTmpDir();
       TCollection_AsciiString aTmpDir = isMultiFile? (const Standard_CString)theURL: (const Standard_CString)aString.in();
       if(MYDEBUG) MESSAGE("VISU_Gen_i::Save - "<<aTmpDir);
@@ -365,7 +365,7 @@ namespace VISU{
        if(!CORBA::is_nil(anObj)){
          Storable* pStorable = dynamic_cast<Storable*>(GetServant(anObj).in());
          if(pStorable != NULL){
-           Mutex mt(myMutex,qApp);
+           Mutex mt(myMutex);
            aString = pStorable->ToString().c_str();
            return aString._retn();
          }
@@ -404,7 +404,7 @@ namespace VISU{
     //omni_mutex_lock aMutexLock(aMutex);
     if(MYDEBUG) MESSAGE("VISU_Gen_i::GetViewManager : "<<myMutex);
     if(myMutex){
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       ViewManager_i * aViewManager = new ViewManager_i(myStudyDocument);
       return ViewManager::_duplicate(aViewManager->_this());
     }
@@ -414,7 +414,7 @@ namespace VISU{
   SALOMEDS::SObject_ptr VISU_Gen_i::ImportTables(const char* theFileName){
     if(myMutex){
       if(myStudyDocument->GetProperties()->IsLocked()) return SALOMEDS::SObject::_nil();
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       SALOMEDS::SObject_var aRes = VISU::ImportTables(theFileName,myStudyDocument);
       return aRes._retn();
     }
@@ -430,7 +430,7 @@ namespace VISU{
   Result_ptr VISU_Gen_i::ImportFile(const char* theFileName){
     if(myMutex){
       if(myStudyDocument->GetProperties()->IsLocked()) return Result::_nil();
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       aFileInfo.setFile(theFileName);
       Result_i* pResult = new Result_i(myStudyDocument);
       if(pResult->Create(theFileName) != NULL) 
@@ -446,7 +446,7 @@ namespace VISU{
   Result_ptr VISU_Gen_i::CopyAndImportFile(const char* theFileName){
     if(myMutex){
       if(myStudyDocument->GetProperties()->IsLocked()) return Result::_nil();
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       VISU::Result_var aResult;
       aFileInfo.setFile(theFileName);
       Result_i* pResult = new Result_i(myStudyDocument,Result_i::eRestoredFile);
@@ -461,7 +461,7 @@ namespace VISU{
     if(MYDEBUG) MESSAGE("VISU_Gen_i::ImportMed : "<<myMutex);
     if(myMutex){
       if(myStudyDocument->GetProperties()->IsLocked()) return Result::_nil();
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       Result_i* pResult = new Result_i(myStudyDocument);
       if(pResult->Create(theMedSObject) != NULL)
        return pResult->_this();
@@ -477,7 +477,7 @@ namespace VISU{
     if(MYDEBUG) MESSAGE("VISU_Gen_i::ImportMedField : "<<myMutex);
     if(myMutex){
       if(myStudyDocument->GetProperties()->IsLocked()) return Result::_nil();
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       Result_i* pResult = new Result_i(myStudyDocument);
       if(pResult->Create(theField) != NULL)
        return pResult->_this();
@@ -493,7 +493,7 @@ namespace VISU{
     if(MYDEBUG) MESSAGE("VISU_Gen_i::MeshOnEntity : "<<myMutex);
     if(myMutex){
       if(myStudyDocument->GetProperties()->IsLocked()) return Mesh::_nil();
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       if(Result_i* pResult = dynamic_cast<Result_i*>(GetServant(theResult).in())){
        Mesh_i* aPresent = new Mesh_i(pResult);
        if(aPresent->Create(theMeshName,theEntity) != NULL)
@@ -513,7 +513,7 @@ namespace VISU{
     if(MYDEBUG) MESSAGE("VISU_Gen_i::FamilyMeshOnEntity : "<<myMutex);
     if(myMutex){
       if(myStudyDocument->GetProperties()->IsLocked()) return Mesh::_nil();
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       if(Result_i* pResult = dynamic_cast<Result_i*>(GetServant(theResult).in())){
        Mesh_i* aPresent = new Mesh_i(pResult);
        if(aPresent->Create(theMeshName,theEntity,theFamilyName) != NULL)
@@ -532,7 +532,7 @@ namespace VISU{
     if(MYDEBUG) MESSAGE("VISU_Gen_i::GroupMesh : "<<myMutex);
     if(myMutex){
       if(myStudyDocument->GetProperties()->IsLocked()) return Mesh::_nil();
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       if(Result_i* pResult = dynamic_cast<Result_i*>(GetServant(theResult).in())){
        Mesh_i* aPresent = new Mesh_i(pResult);
        if(aPresent->Create(theMeshName,theGroupName) != NULL)
@@ -599,7 +599,7 @@ namespace VISU{
     if(MYDEBUG) MESSAGE("VISU_Gen_i::CreateTable : "<<myMutex);
     if(myMutex){
       if(myStudyDocument->GetProperties()->IsLocked()) return Table::_nil();
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       Table_i* pPresent = new Table_i(myStudyDocument,theTableEntry);
       if(pPresent->Create() != NULL)
        return pPresent->_this();
@@ -615,7 +615,7 @@ namespace VISU{
     if(MYDEBUG) MESSAGE("VISU_Gen_i::CreateCurve : "<<myMutex);
     if(myMutex){
       if(myStudyDocument->GetProperties()->IsLocked()) return Curve::_nil();
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       PortableServer::POA_ptr aPOA = GetPOA();
       Table_i* pTable = dynamic_cast<Table_i*>(aPOA->reference_to_servant(theTable));
       Curve_i* pPresent = new Curve_i(myStudyDocument,pTable,theHRow,theVRow);
@@ -632,7 +632,7 @@ namespace VISU{
     if(MYDEBUG) MESSAGE("VISU_Gen_i::CreateContainer : "<<myMutex);
     if(myMutex){
       if(myStudyDocument->GetProperties()->IsLocked()) return Container::_nil();
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       Container_i* pPresent = new Container_i(myStudyDocument);
       if(pPresent->Create() != NULL)
        return pPresent->_this();
@@ -647,9 +647,9 @@ namespace VISU{
   Animation_ptr VISU_Gen_i::CreateAnimation(View3D_ptr theView3D){
     if(myMutex){
       if(myStudyDocument->GetProperties()->IsLocked()) return Animation::_nil();
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       if(MYDEBUG) MESSAGE("VISU_Gen_i::CreateAnimation : "<<myMutex);
-      if(VISU_TimeAnimation* anAnim = new VISU_TimeAnimation(myStudyDocument,theView3D)){
+      if(VISU_TimeAnimation_i* anAnim = new VISU_TimeAnimation_i(myStudyDocument,theView3D)){
        return anAnim->_this();
       }else
        return VISU::Animation::_nil();
@@ -661,7 +661,7 @@ namespace VISU{
   void VISU_Gen_i::Close(SALOMEDS::SComponent_ptr theComponent){
     if(MYDEBUG) MESSAGE("VISU_Gen_i::Close : "<<myMutex);
     if(myMutex){
-      //Mutex mt(myMutex,qApp);
+      //Mutex mt(myMutex);
       //SALOMEDS::Study_var aStudy = theComponent->GetStudy(); 
       //if(!aStudy->_is_nil()){
       //       SALOMEDS::ChildIterator_var aChildIter = aStudy->NewChildIterator(theComponent);
@@ -717,7 +717,7 @@ namespace VISU{
   {
     if(MYDEBUG) MESSAGE("VISU_Gen_i::PublishInStudy : "<<myMutex);
     if(myMutex){
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       SALOMEDS::SObject_var aResultSO;
       Result_i* aResultObj = dynamic_cast<Result_i*>(GetServant(theObject).in());
       if (!aResultObj) return aResultSO._retn();
@@ -732,7 +732,7 @@ namespace VISU{
   CORBA::Boolean VISU_Gen_i::CanCopy(SALOMEDS::SObject_ptr theObject) {
     if(0 && MYDEBUG) MESSAGE("VISU_Gen_i::CanCopy : "<<myMutex);
     if(myMutex){
-      //Mutex mt(myMutex,qApp);
+      //Mutex mt(myMutex);
       SALOMEDS::GenericAttribute_var anAttr;
       if (!theObject->FindAttribute(anAttr, "AttributeIOR")) return false;
       try {
@@ -763,7 +763,7 @@ namespace VISU{
 
   SALOMEDS::TMPFile* VISU_Gen_i::CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID) {
     if(myMutex){
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
 
       theObjectID = 0;
       SALOMEDS::TMPFile_var aStreamFile = new SALOMEDS::TMPFile;
@@ -844,7 +844,7 @@ namespace VISU{
                                              SALOMEDS::SObject_ptr theObject) {
     if(MYDEBUG) MESSAGE("VISU_Gen_i::PasteInto : "<<myMutex);
     if(myMutex){
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       SALOMEDS::SObject_var aResultSO;
       if (theObjectID != 1) return aResultSO._retn();
 
index 529514c7b2552e4611cc692b402cdd7955f6286c..9a1d4aa0a35c4257c7bc12f615d2760415eeef29 100644 (file)
@@ -74,7 +74,7 @@ namespace VISU{
       typedef typename TPrs3d_i::TInterface TPrs3d;
       typename TPrs3d::_var_type aPrs3d;
       if(myStudyDocument->GetProperties()->IsLocked()) return TPrs3d::_nil();
-      Mutex mt(myMutex,qApp);
+      Mutex mt(myMutex);
       if(Result_i* pResult = dynamic_cast<Result_i*>(GetServant(theResult).in())){
        if(TPrs3d_i::IsPossible(pResult,theMeshName,theEntity,theFieldName,int(theIteration))){
          TPrs3d_i* aPresent = new TPrs3d_i(pResult,theAddToStudy);