Back to index

salome-kernel  6.5.0
salome_genericobj.py
Go to the documentation of this file.
00001 #  -*- coding: iso-8859-1 -*-
00002 # Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00003 #
00004 # This library is free software; you can redistribute it and/or
00005 # modify it under the terms of the GNU Lesser General Public
00006 # License as published by the Free Software Foundation; either
00007 # version 2.1 of the License.
00008 #
00009 # This library is distributed in the hope that it will be useful,
00010 # but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 # Lesser General Public License for more details.
00013 #
00014 # You should have received a copy of the GNU Lesser General Public
00015 # License along with this library; if not, write to the Free Software
00016 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00017 #
00018 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00019 #
00020 
00021 """
00022  When imported this module adds to CORBA objref from GenericObj type
00023  automatic management of reference count
00024  The reference count is incremented when the local proxy is created (assignment of __omni_obj attribute)
00025  and is decremented when the local proxy is deleted (call of __del__) 
00026 
00027  The GenericObj class for proxy is modified by adding two methods : __del__ and __setattr__
00028  The module must be imported before any other import of SALOME CORBA module
00029 """
00030 import omniORB
00031 import SALOME
00032 
00033 def mydel(self):
00034     self.UnRegister()
00035     omniORB.CORBA.Object.__del__(self)
00036 
00037 def mysetattr(self,attr,value):
00038     self.__dict__[attr]=value
00039     if attr == "__omni_obj":
00040       self.Register()
00041 
00042 SALOME._objref_GenericObj.__del__=mydel
00043 SALOME._objref_GenericObj.__setattr__=mysetattr
00044