![]() |
C++ API DOCUMENTATION |
00001 /***************************************************************************** 00002 * 00003 * This file is part of Mapnik (c++ mapping toolkit) 00004 * 00005 * Copyright (C) 2006 Artem Pavlenko 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * This library 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 GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00020 * 00021 *****************************************************************************/ 00022 00023 //$Id: datasource_cache.hpp 39 2005-04-10 20:39:53Z pavlenko $ 00024 00025 #ifndef DATASOURCE_CACHE_HPP 00026 #define DATASOURCE_CACHE_HPP 00027 00028 // mapnik 00029 #include <mapnik/utils.hpp> 00030 #include <mapnik/params.hpp> 00031 #include <mapnik/plugin.hpp> 00032 #include <mapnik/datasource.hpp> 00033 // boost 00034 #include <boost/shared_ptr.hpp> 00035 // stl 00036 #include <map> 00037 00038 namespace mapnik { 00039 class MAPNIK_DECL datasource_cache : 00040 public singleton <datasource_cache,CreateStatic> 00041 { 00042 friend class CreateStatic<datasource_cache>; 00043 private: 00044 datasource_cache(); 00045 ~datasource_cache(); 00046 datasource_cache(const datasource_cache&); 00047 datasource_cache& operator=(const datasource_cache&); 00048 static std::map<std::string,boost::shared_ptr<PluginInfo> > plugins_; 00049 static bool registered_; 00050 static bool insert(const std::string& name,const lt_dlhandle module); 00051 public: 00052 static void register_datasources(const std::string& path); 00053 static boost::shared_ptr<datasource> create(parameters const& params); 00054 }; 00055 } 00056 00057 #endif //DATASOURCE_CACHE_HPP