/* NetLink Sockets: Networking C++ library Copyright 2012 Pedro Francisco Pareja Ruiz (PedroPareja@Gmail.com) This file is part of NetLink Sockets. NetLink Sockets is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. NetLink Sockets 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 General Public License for more details. You should have received a copy of the GNU General Public License along with NetLink Sockets. If not, see . */ template ReleaseManager::ReleaseManager(void (*releaseFunction)(T*)): _releaseFunction(releaseFunction) {} template ReleaseManager::~ReleaseManager() { for(unsigned i=0; i < (unsigned) _releaseQueue.size(); ++i) if(*_releaseQueue.at(i)) { if(_releaseFunction) _releaseFunction(*_releaseQueue.at(i)); else delete *_releaseQueue.at(i); } for(unsigned i=0; i < (unsigned) _releaseAddressQueue.size(); ++i) if(_releaseAddressQueue.at(i)) { if(_releaseFunction) _releaseFunction(_releaseAddressQueue.at(i)); else delete _releaseAddressQueue.at(i); } } template void ReleaseManager::add(T** var) { _releaseQueue.push_back(var); } template void ReleaseManager::add(T* address) { _releaseAddressQueue.push_back(address); }