X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Ffactory_filter.cpp;h=5fec9ddad22bda3123f9cb838c80c048cb4520ec;hb=73f37c91c144b070020df2f27472c09b62367acf;hp=5ba05bc524289f4a6c418ce12707e8e70f79525a;hpb=79100c2ae2dac4bdde4f4d46b69e147562b4ec6c;p=metaproxy-moved-to-github.git diff --git a/src/factory_filter.cpp b/src/factory_filter.cpp index 5ba05bc..5fec9dd 100644 --- a/src/factory_filter.cpp +++ b/src/factory_filter.cpp @@ -1,8 +1,20 @@ -/* $Id: factory_filter.cpp,v 1.4 2006-03-16 10:40:59 adam Exp $ - Copyright (c) 2005-2006, Index Data. +/* This file is part of Metaproxy. + Copyright (C) 2005-2012 Index Data -%LICENSE% - */ +Metaproxy 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, or (at your option) any later +version. + +Metaproxy 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 this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ #include "config.hpp" @@ -21,7 +33,7 @@ namespace mp = metaproxy_1; namespace metaproxy_1 { class FactoryFilter::Rep { typedef std::map CallbackMap; - typedef std::map::iterator + typedef std::map::iterator CallbackMapIt; public: friend class FactoryFilter; @@ -54,8 +66,8 @@ mp::FactoryFilter::~FactoryFilter() } -bool mp::FactoryFilter::add_creator(std::string fi, - CreateFilterCallback cfc) +bool mp::FactoryFilter::add_creator(const std::string &fi, + CreateFilterCallback cfc) { return m_p->m_fcm.insert(Rep::CallbackMap::value_type(fi, cfc)).second; } @@ -69,7 +81,7 @@ bool mp::FactoryFilter::drop_creator(std::string fi) bool mp::FactoryFilter::exist(std::string fi) { Rep::CallbackMap::const_iterator it = m_p->m_fcm.find(fi); - + if (it == m_p->m_fcm.end()) { return false; @@ -80,7 +92,7 @@ bool mp::FactoryFilter::exist(std::string fi) mp::filter::Base* mp::FactoryFilter::create(std::string fi) { Rep::CallbackMap::const_iterator it = m_p->m_fcm.find(fi); - + if (it == m_p->m_fcm.end()){ std::string msg = "filter type '" + fi + "' not found"; throw NotFound(msg); @@ -107,18 +119,18 @@ bool mp::FactoryFilter::add_creator_dl(const std::string &fi, return true; } - std::string full_path = path + "/metaproxy_1_filter_" + fi + ".so"; + std::string full_path = path + "/metaproxy_filter_" + fi + ".so"; void *dl_handle = dlopen(full_path.c_str(), RTLD_GLOBAL|RTLD_NOW); if (!dl_handle) { const char *dl = dlerror(); - std::cout << "dlopen " << full_path << " failed. dlerror=" << dl << + std::cout << "dlopen " << full_path << " failed. dlerror=" << dl << std::endl; return false; } std::string full_name = "metaproxy_1_filter_" + fi; - + void *dlsym_ptr = dlsym(dl_handle, full_name.c_str()); if (!dlsym_ptr) { @@ -135,8 +147,9 @@ bool mp::FactoryFilter::add_creator_dl(const std::string &fi, /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil - * c-file-style: "stroustrup" * End: * vim: shiftwidth=4 tabstop=8 expandtab */ +