X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FBasics%2FBasicsGenericDestructor.hxx;h=2476b15f6bf7fa9ea97f15c4c8d5544feb5007b1;hb=1bbffef73eeeb5b2a14d8fc7bdf91affdafae664;hp=a5d934dd8d100fb9e839c27b0b3e50fc87c9d4d5;hpb=1bd1d38e86c39b13e265f8ff534fc1463c25fef3;p=modules%2Fkernel.git diff --git a/src/Basics/BasicsGenericDestructor.hxx b/src/Basics/BasicsGenericDestructor.hxx index a5d934dd8..2476b15f6 100644 --- a/src/Basics/BasicsGenericDestructor.hxx +++ b/src/Basics/BasicsGenericDestructor.hxx @@ -1,34 +1,36 @@ -// SALOME Basics : general SALOME definitions and tools (C++ part - no CORBA) +// Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE +// +// Copyright (C) 2003-2007 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, or (at your option) any later version. // -// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// 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 // + +// SALOME Basics : general SALOME definitions and tools (C++ part - no CORBA) // File : BasicGenericDestructor.hxx // Author : Antoine YESSAYAN, Paul RASCLE, EDF // Module : SALOME // $Header$ - +// #ifndef _BASICGENERICDESTRUCTOR_HXX_ #define _BASICGENERICDESTRUCTOR_HXX_ +#include "SALOME_Basics.hxx" + #include #include #include @@ -37,20 +39,6 @@ #include #include -#if defined BASICS_EXPORTS -#if defined WIN32 -#define BASICS_EXPORT __declspec( dllexport ) -#else -#define BASICS_EXPORT -#endif -#else -#if defined WNT -#define BASICS_EXPORT __declspec( dllimport ) -#else -#define BASICS_EXPORT -#endif -#endif - //#define _DEVDEBUG_ #ifdef _DEVDEBUG_ @@ -61,6 +49,10 @@ #define DEVTRACE(msg) #endif +#ifdef WIN32 +#pragma warning(disable:4251) // Warning DLL Interface ... +#endif + // ============================================================================ /*! * The PROTECTED_DELETE base class provides a protected destructor. @@ -75,11 +67,11 @@ * This class is utilised with GENERIC_DESTRUCTOR and DESTRUCTOR_OF, * to program automatic deletion of objects at the end of the process, while * keeping the possibility of an early destruction, if required. This is used - * for unit testing and trace mecanism. + * for unit testing and trace mechanism. */ // ============================================================================ -class PROTECTED_DELETE +class BASICS_EXPORT PROTECTED_DELETE { public: static void deleteInstance(PROTECTED_DELETE *anObject); @@ -111,14 +103,14 @@ private: */ // ============================================================================ -class GENERIC_DESTRUCTOR +class BASICS_EXPORT GENERIC_DESTRUCTOR { public : - BASICS_EXPORT static std::list *Destructors; + static std::list *Destructors; virtual ~GENERIC_DESTRUCTOR() {}; - BASICS_EXPORT static const int Add(GENERIC_DESTRUCTOR &anObject); - BASICS_EXPORT virtual void operator()(void) = 0; + static int Add(GENERIC_DESTRUCTOR &anObject); + virtual void operator()(void) = 0; }; // ============================================================================ @@ -135,14 +127,13 @@ public : * * Note that neither ptrPoint, nor ptrDestruct should be destroyed by the user. * - * The destruction object must be created dynamically because it suscribes + * The destruction object must be created dynamically because it subscribes * itself in the list of destruction to be performed at the end of the process. */ // ============================================================================ template class DESTRUCTOR_OF : public GENERIC_DESTRUCTOR { - public: /*! Programs the destruction at the end of the process, of the object anObject. @@ -153,7 +144,7 @@ public: _objectPtr(&anObject) { DEVTRACE(" DESTRUCTOR_OF " << typeid(anObject).name() - << " " << _objectPtr << " " << this ); + << " " << _objectPtr << " " << this ); PROTECTED_DELETE::addObj(_objectPtr); assert(GENERIC_DESTRUCTOR::Add(*this) >= 0); } @@ -167,9 +158,9 @@ public: { if (_objectPtr) { - DEVTRACE("DESTRUCTOR_OF<>::operator() " << _objectPtr); - if (_objectPtr) PROTECTED_DELETE::deleteInstance(_objectPtr); - _objectPtr = NULL; + DEVTRACE("DESTRUCTOR_OF<>::operator() " << _objectPtr); + if (_objectPtr) PROTECTED_DELETE::deleteInstance(_objectPtr); + _objectPtr = NULL; } }