From: ouv Date: Wed, 29 Nov 2006 09:18:57 +0000 (+0000) Subject: removed from base X-Git-Tag: WP1_2_3_05-12-2006_cache_system~35 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=d7000bb94e3daa3d258e9586836140839ec9108c;p=modules%2Fvisu.git removed from base --- diff --git a/src/VISU_I/SALOME_GenericObjPtr.cc b/src/VISU_I/SALOME_GenericObjPtr.cc deleted file mode 100644 index 6b19648c..00000000 --- a/src/VISU_I/SALOME_GenericObjPtr.cc +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// 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. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// File : SALOME_GenericObjPtr.cc -// Author : Oleg UVAROV -// Module : SALOME - -#include "SALOME_GenericObjPtr.hh" - -using namespace SALOME; - -//---------------------------------------------------------------------------- -GenericObjPtrBase -::GenericObjPtrBase() : - Object(0) -{ - // Add a reference to the object. - this->Register(); -} - -//---------------------------------------------------------------------------- -GenericObjPtrBase -::GenericObjPtrBase(GenericObj_i* r): - Object(r) -{ - // Add a reference to the object. - this->Register(); -} - -//---------------------------------------------------------------------------- -GenericObjPtrBase -::GenericObjPtrBase(const GenericObjPtrBase& r): - Object(r.Object) -{ - // Add a reference to the object. - this->Register(); -} - -//---------------------------------------------------------------------------- -GenericObjPtrBase -::GenericObjPtrBase(GenericObj_i* r, const GenericObjPtrBase::NoReference&): - Object(r) -{ - // Do not add a reference to the object because we received the - // NoReference argument. -} - -//---------------------------------------------------------------------------- -GenericObjPtrBase -::~GenericObjPtrBase() -{ - // The main pointer must be set to NULL before calling UnRegister, - // so use a local variable to save the pointer. This is because the - // garbage collection reference graph traversal may make it back to - // this smart pointer, and we do not want to include this reference. - if(GenericObj_i* object = this->Object) - { - this->Object = 0; - object->Destroy(); - } -} - -//---------------------------------------------------------------------------- -GenericObjPtrBase& -GenericObjPtrBase -::operator=(GenericObj_i* r) -{ - // This is an exception-safe assignment idiom that also gives the - // correct order of register/unregister calls to all objects - // involved. A temporary is constructed that references the new - // object. Then the main pointer and temporary are swapped and the - // temporary's destructor unreferences the old object. - GenericObjPtrBase(r).Swap(*this); - return *this; -} - -//---------------------------------------------------------------------------- -GenericObjPtrBase& -GenericObjPtrBase -::operator=(const GenericObjPtrBase& r) -{ - // This is an exception-safe assignment idiom that also gives the - // correct order of register/unregister calls to all objects - // involved. A temporary is constructed that references the new - // object. Then the main pointer and temporary are swapped and the - // temporary's destructor unreferences the old object. - GenericObjPtrBase(r).Swap(*this); - return *this; -} - -//---------------------------------------------------------------------------- -void GenericObjPtrBase -::Swap(GenericObjPtrBase& r) -{ - // Just swap the pointers. This is used internally by the - // assignment operator. - GenericObj_i* temp = r.Object; - r.Object = this->Object; - this->Object = temp; -} - -//---------------------------------------------------------------------------- -void GenericObjPtrBase -::Register() -{ - // Add a reference only if the object is not NULL. - if(this->Object) - this->Object->Register(); -} diff --git a/src/VISU_I/SALOME_GenericObjPtr.hh b/src/VISU_I/SALOME_GenericObjPtr.hh deleted file mode 100644 index ecccd2db..00000000 --- a/src/VISU_I/SALOME_GenericObjPtr.hh +++ /dev/null @@ -1,156 +0,0 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// 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. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// File : SALOME_GenericObjPtr.hh -// Author : Oleg UVAROV -// Module : SALOME - -#ifndef SALOME_GenericObjPtr_HH -#define SALOME_GenericObjPtr_HH - -#include "SALOME_GenericObj_i.hh" - -namespace SALOME -{ - class GenericObjPtrBase - { - public: - // Description: - // Initialize smart pointer to NULL. - GenericObjPtrBase(); - - // Description: - // Initialize smart pointer to given object. - GenericObjPtrBase( GenericObj_i* ); - - // Description: - // Initialize smart pointer with a new reference to the same object - // referenced by given smart pointer. - GenericObjPtrBase( const GenericObjPtrBase& ); - - // Description: - // Destroy smart pointer and remove the reference to its object. - ~GenericObjPtrBase(); - - // Description: - // Assign object to reference. This removes any reference to an old object. - GenericObjPtrBase& operator=( GenericObj_i* ); - GenericObjPtrBase& operator=( const GenericObjPtrBase& ); - - // Description: - // Get the contained pointer. - GenericObj_i* GetPointer() const - { - return this->Object; - } - - protected: - // Initialize smart pointer to given object, but do not increment - // reference count. The destructor will still decrement the count. - // This effectively makes it an auto-ptr. - class NoReference {}; - GenericObjPtrBase(GenericObj_i* r, const NoReference&); - - // Pointer to the actual object. - GenericObj_i* Object; - - private: - // Internal utility methods. - void Swap( GenericObjPtrBase& ); - void Register(); - }; - - template - class GenericObjPtr: public GenericObjPtrBase - { - public: - // Description: - // Initialize smart pointer to NULL. - GenericObjPtr() {} - - // Description: - // Initialize smart pointer to given object. - GenericObjPtr(T* r): GenericObjPtrBase(r) {} - - // Description: - // Initialize smart pointer with a new reference to the same object - // referenced by given smart pointer. - GenericObjPtr(const GenericObjPtrBase& r): GenericObjPtrBase(r) {} - - // Description: - // Assign object to reference. This removes any reference to an old - // object. - GenericObjPtr& operator=(T* r) - { - this->GenericObjPtrBase::operator=(r); - return *this; - } - - // Description: - // Assign object to reference. This removes any reference to an old - // object. - GenericObjPtr& operator=(const GenericObjPtrBase& r) - { - this->GenericObjPtrBase::operator=(r); - return *this; - } - - // Description: - // Get the contained pointer. - T* GetPointer() const - { - return dynamic_cast(this->Object); - } - - // Description: - // Get the contained pointer. - operator T* () const - { - return dynamic_cast(this->Object); - } - - // Description: - // Dereference the pointer and return a reference to the contained - // object. - T& operator*() const - { - return *dynamic_cast(this->Object); - } - - // Description: - // Provides normal pointer target member access using operator ->. - T* operator->() const - { - return dynamic_cast(this->Object); - } - - // Description: - // Create an instance of an object. - static GenericObjPtr New() - { - return GenericObjPtr(T::New(), NoReference()); - } - - protected: - GenericObjPtr(T* r, const NoReference& n): GenericObjPtrBase(r, n) {} - }; -} - -#endif