Salome HOME
add method NameChanged to update title name
[modules/kernel.git] / src / SALOMEDSImpl / SALOMEDSImpl_AttributeIOR.cxx
index a16108523b674bd85e0c58d31a97904b32570f09..f5c8ec76464fdf2898f38a0164eb7d744b78b6af 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 #include "SALOMEDSImpl_AttributeIOR.hxx"
 #include "SALOMEDSImpl_Study.hxx"
 
-//to disable automatic genericobj management comment the following line
-#define WITHGENERICOBJ
-
-#ifdef WITHGENERICOBJ
-#include "SALOME_GenericObj_i.hh"
-
-static CORBA::ORB_var getORB()
-{
-  int argc=0;
-  return CORBA::ORB_init(argc,0);
-}
-
-void IORGenericObjDecref(const std::string& anIOR)
-{
-  if(anIOR=="")return;
-  CORBA::Object_var obj;
-  SALOME::GenericObj_var gobj;
-  try
-    {
-      obj = getORB()->string_to_object(anIOR.c_str());
-      if(obj->_non_existent())return;
-      gobj = SALOME::GenericObj::_narrow(obj);
-      if(! CORBA::is_nil(gobj) )
-        {
-          gobj->UnRegister();
-        }
-    }
-  catch(const CORBA::Exception& e)
-    {
-    }
-}
-
-void IORGenericObjIncref(const std::string& anIOR)
-{
-  CORBA::Object_var obj;
-  SALOME::GenericObj_var gobj;
-  try
-    {
-      obj = getORB()->string_to_object(anIOR.c_str());
-      if(obj->_non_existent())return;
-      gobj = SALOME::GenericObj::_narrow(obj);
-      if(! CORBA::is_nil(gobj) )
-        {
-          gobj->Register();
-        }
-    }
-  catch(const CORBA::Exception& e)
-    {
-    }
-}
-#else
-void IORGenericObjDecref(const std::string& anIOR)
-{}
-void IORGenericObjIncref(const std::string& anIOR)
-{}
-#endif
-
 //=======================================================================
 //function : GetID
 //purpose  : 
@@ -95,14 +38,12 @@ const std::string& SALOMEDSImpl_AttributeIOR::GetID ()
   return SALOMEDSImpl_AttributeIORID;
 }
 
-
-
 //=======================================================================
 //function : Set
 //purpose  : 
 //=======================================================================
 
-SALOMEDSImpl_AttributeIOR* SALOMEDSImpl_AttributeIOR::Set (const DF_Label& L,
+SALOMEDSImpl_AttributeIOR* SALOMEDSImpl_AttributeIOR::Set (const DF_Label&    L,
                                                            const std::string& S) 
 {
   SALOMEDSImpl_AttributeIOR* A = NULL;
@@ -123,14 +64,13 @@ void SALOMEDSImpl_AttributeIOR::SetValue(const std::string& theValue)
 {
   CheckLocked();
 
-  SALOMEDSImpl_Study* study=SALOMEDSImpl_Study::GetStudy(Label());
-
   Backup();
   //remove IOR entry in study
   if(theValue != myString)
     {
-      IORGenericObjIncref(theValue);
-      IORGenericObjDecref(myString);
+      SALOMEDSImpl_Study* study=SALOMEDSImpl_Study::GetStudy(Label());
+      study->RegisterGenObj(theValue, Label());
+      study->UnRegisterGenObj(myString, Label());
       study->DeleteIORLabelMapItem(myString);
     }
 
@@ -164,7 +104,7 @@ SALOMEDSImpl_AttributeIOR::SALOMEDSImpl_AttributeIOR()
 
 SALOMEDSImpl_AttributeIOR::~SALOMEDSImpl_AttributeIOR()
 {
-  IORGenericObjDecref(myString);
+  SALOMEDSImpl_Study::UnRegisterGenObj(myString, Label());
 }
 
 //=======================================================================