X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCoupling%2FMEDCouplingAutoRefCountObjectPtr.hxx;fp=src%2FMEDCoupling%2FMEDCouplingAutoRefCountObjectPtr.hxx;h=0000000000000000000000000000000000000000;hb=3b1d77efdd048ef4aad858e96138bf79318119df;hp=6194853e39671ded8a7c688d41aff34f7c005782;hpb=890ceca0a13478736942a95986f0bf7057c4fba3;p=tools%2Fmedcoupling.git diff --git a/src/MEDCoupling/MEDCouplingAutoRefCountObjectPtr.hxx b/src/MEDCoupling/MEDCouplingAutoRefCountObjectPtr.hxx deleted file mode 100644 index 6194853e3..000000000 --- a/src/MEDCoupling/MEDCouplingAutoRefCountObjectPtr.hxx +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D -// -// 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. -// -// 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 -// -// Author : Anthony Geay (CEA/DEN) - -#ifndef __PARAMEDMEM_MEDCOUPLINGAUTOREFCOUNTOBJECTPTR_HXX__ -#define __PARAMEDMEM_MEDCOUPLINGAUTOREFCOUNTOBJECTPTR_HXX__ - -#include "MEDCouplingRefCountObject.hxx" -#include "InterpKernelException.hxx" - -namespace MEDCoupling -{ - template - class MEDCouplingAutoRefCountObjectPtr - { - public: - MEDCouplingAutoRefCountObjectPtr(const MEDCouplingAutoRefCountObjectPtr& other):_ptr(0) { referPtr(other._ptr); } - MEDCouplingAutoRefCountObjectPtr(T *ptr=0):_ptr(ptr) { } - ~MEDCouplingAutoRefCountObjectPtr() { destroyPtr(); } - bool operator==(const MEDCouplingAutoRefCountObjectPtr& other) const { return _ptr==other._ptr; } - bool operator==(const T *other) const { return _ptr==other; } - MEDCouplingAutoRefCountObjectPtr &operator=(const MEDCouplingAutoRefCountObjectPtr& other) { if(_ptr!=other._ptr) { destroyPtr(); referPtr(other._ptr); } return *this; } - MEDCouplingAutoRefCountObjectPtr &operator=(T *ptr) { if(_ptr!=ptr) { destroyPtr(); _ptr=ptr; } return *this; } - T *operator->() { return _ptr ; } - const T *operator->() const { return _ptr; } - T& operator*() { return *_ptr; } - const T& operator*() const { return *_ptr; } - operator T *() { return _ptr; } - operator const T *() const { return _ptr; } - T *retn() { if(_ptr) _ptr->incrRef(); return _ptr; } - private: - void referPtr(T *ptr) { _ptr=ptr; if(_ptr) _ptr->incrRef(); } - void destroyPtr() { if(_ptr) _ptr->decrRef(); } - private: - T *_ptr; - }; - - template - typename MEDCoupling::MEDCouplingAutoRefCountObjectPtr DynamicCast(typename MEDCoupling::MEDCouplingAutoRefCountObjectPtr& autoSubPtr) throw() - { - T *subPtr(autoSubPtr); - U *ptr(dynamic_cast(subPtr)); - typename MEDCoupling::MEDCouplingAutoRefCountObjectPtr ret(ptr); - if(ptr) - ptr->incrRef(); - return ret; - } - - template - typename MEDCoupling::MEDCouplingAutoRefCountObjectPtr DynamicCastSafe(typename MEDCoupling::MEDCouplingAutoRefCountObjectPtr& autoSubPtr) - { - T *subPtr(autoSubPtr); - U *ptr(dynamic_cast(subPtr)); - if(subPtr && !ptr) - throw INTERP_KERNEL::Exception("DynamicCastSafe : U is not a subtype of T !"); - typename MEDCoupling::MEDCouplingAutoRefCountObjectPtr ret(ptr); - if(ptr) - ptr->incrRef(); - return ret; - } -} - -#endif