// src/backend/policies_gatekeeper.cc - Copyright 2005, 2006, University // of Padova, dept. of Pure and Applied // Mathematics // // This file is part of SGPEMv2. // // This 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 2 of the License, or // (at your option) any later version. // // SGPEMv2 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 SGPEMv2; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "config.h" #include "serializers_gatekeeper.hh" #include "serializer.hh" // Include full template definition only in implementation files: #include "singleton.tcc" #include #include using std::vector; using std::find; using std::runtime_error; using namespace sgpem; // Explicit template instantiation to allow to export symbols from the DSO. template class SG_DLLEXPORT Singleton; typedef vector::iterator SerializerIterator; vector SerializersGatekeeper::get_registered() const { return _registered; } void SerializersGatekeeper::register_serializer(Serializer* serializer) { assert(serializer != NULL); SerializerIterator end = _registered.end(); if (find(_registered.begin(), end, serializer) == end) _registered.push_back(serializer); } void SerializersGatekeeper::unregister_serializer(Serializer* serializer) { assert(serializer != NULL); SerializerIterator end = _registered.end(); SerializerIterator pos = find(_registered.begin(), end, serializer); if (pos != end) { _registered.erase(pos); } } SerializersGatekeeper::SerializersGatekeeper() {}