00001 /* 00002 NetLink Sockets: Networking C++ library 00003 Copyright 2012 Pedro Francisco Pareja Ruiz (PedroPareja@Gmail.com) 00004 00005 This file is part of NetLink Sockets. 00006 00007 NetLink Sockets is free software: you can redistribute it and/or modify 00008 it under the terms of the GNU General Public License as published by 00009 the Free Software Foundation, either version 3 of the License, or 00010 (at your option) any later version. 00011 00012 NetLink Sockets is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with NetLink Sockets. If not, see <http://www.gnu.org/licenses/>. 00019 00020 */ 00021 00022 00023 template <typename T> 00024 ReleaseManager<T>::ReleaseManager(void (*releaseFunction)(T*)): 00025 _releaseFunction(releaseFunction) {} 00026 00027 template <typename T> 00028 ReleaseManager<T>::~ReleaseManager() { 00029 00030 for(unsigned i=0; i < (unsigned) _releaseQueue.size(); ++i) 00031 00032 if(*_releaseQueue.at(i)) { 00033 00034 if(_releaseFunction) 00035 _releaseFunction(*_releaseQueue.at(i)); 00036 else 00037 delete *_releaseQueue.at(i); 00038 } 00039 } 00040 00041 template <typename T> 00042 void ReleaseManager<T>::add(T** var) { 00043 00044 _releaseQueue.push_back(var); 00045 }
1.7.3