| [5631] | 1 | /* | 
|---|
|  | 2 | ----------------------------------------------------------------------------- | 
|---|
|  | 3 | This source file is part of OGRE | 
|---|
|  | 4 | (Object-oriented Graphics Rendering Engine) | 
|---|
|  | 5 | For the latest info, see http://www.ogre3d.org/ | 
|---|
|  | 6 |  | 
|---|
|  | 7 | Copyright (c) 2000-2006 Torus Knot Software Ltd | 
|---|
|  | 8 | Also see acknowledgements in Readme.html | 
|---|
|  | 9 |  | 
|---|
|  | 10 | This program is free software; you can redistribute it and/or modify it under | 
|---|
|  | 11 | the terms of the GNU Lesser General Public License as published by the Free Software | 
|---|
|  | 12 | Foundation; either version 2 of the License, or (at your option) any later | 
|---|
|  | 13 | version. | 
|---|
|  | 14 |  | 
|---|
|  | 15 | This program is distributed in the hope that it will be useful, but WITHOUT | 
|---|
|  | 16 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | 
|---|
|  | 17 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. | 
|---|
|  | 18 |  | 
|---|
|  | 19 | You should have received a copy of the GNU Lesser General Public License along with | 
|---|
|  | 20 | this program; if not, write to the Free Software Foundation, Inc., 59 Temple | 
|---|
|  | 21 | Place - Suite 330, Boston, MA 02111-1307, USA, or go to | 
|---|
|  | 22 | http://www.gnu.org/copyleft/lesser.txt. | 
|---|
|  | 23 |  | 
|---|
|  | 24 | You may alternatively use this source under the terms of a specific version of | 
|---|
|  | 25 | the OGRE Unrestricted License provided you have obtained such a license from | 
|---|
|  | 26 | Torus Knot Software Ltd. | 
|---|
|  | 27 | ----------------------------------------------------------------------------- | 
|---|
|  | 28 | */ | 
|---|
|  | 29 |  | 
|---|
|  | 30 | // 08/11/2009: Small adjustments for Orxonox by Fabian 'x3n' Landau | 
|---|
|  | 31 |  | 
|---|
| [5639] | 32 | #ifndef _Core_DynLibManager_H__ | 
|---|
|  | 33 | #define _Core_DynLibManager_H__ | 
|---|
| [5631] | 34 |  | 
|---|
|  | 35 | #include "CorePrereqs.h" | 
|---|
|  | 36 | #include "util/Singleton.h" | 
|---|
|  | 37 |  | 
|---|
|  | 38 | namespace orxonox | 
|---|
|  | 39 | { | 
|---|
|  | 40 | /** Manager for Dynamic-loading Libraries. | 
|---|
|  | 41 | @remarks | 
|---|
|  | 42 | This manager keeps a track of all the open dynamic-loading | 
|---|
|  | 43 | libraries, opens them and returns references to already-open | 
|---|
|  | 44 | libraries. | 
|---|
|  | 45 | */ | 
|---|
|  | 46 | class _CoreExport DynLibManager: public Singleton<DynLibManager> | 
|---|
|  | 47 | { | 
|---|
|  | 48 | friend class Singleton<DynLibManager>; | 
|---|
|  | 49 |  | 
|---|
|  | 50 | protected: | 
|---|
|  | 51 | typedef std::map<std::string, DynLib*> DynLibList; | 
|---|
|  | 52 | DynLibList mLibList; | 
|---|
|  | 53 |  | 
|---|
|  | 54 | public: | 
|---|
|  | 55 | /** Default constructor. | 
|---|
|  | 56 | @note | 
|---|
|  | 57 | <br>Should never be called as the singleton is automatically | 
|---|
|  | 58 | created during the creation of the Root object. | 
|---|
|  | 59 | @see | 
|---|
|  | 60 | Root::Root | 
|---|
|  | 61 | */ | 
|---|
|  | 62 | DynLibManager(); | 
|---|
|  | 63 |  | 
|---|
|  | 64 | /** Default destructor. | 
|---|
|  | 65 | @see | 
|---|
|  | 66 | Root::~Root | 
|---|
|  | 67 | */ | 
|---|
|  | 68 | virtual ~DynLibManager(); | 
|---|
|  | 69 |  | 
|---|
|  | 70 | /** Loads the passed library. | 
|---|
|  | 71 | @param | 
|---|
|  | 72 | filename The name of the library. The extension can be omitted | 
|---|
|  | 73 | */ | 
|---|
|  | 74 | DynLib* load(const std::string& filename); | 
|---|
|  | 75 |  | 
|---|
|  | 76 | /** Unloads the passed library. | 
|---|
|  | 77 | @param | 
|---|
|  | 78 | filename The name of the library. The extension can be omitted | 
|---|
|  | 79 | */ | 
|---|
|  | 80 | void unload(DynLib* lib); | 
|---|
|  | 81 |  | 
|---|
|  | 82 | private: | 
|---|
|  | 83 | static DynLibManager* singletonPtr_s; | 
|---|
|  | 84 | }; | 
|---|
|  | 85 | } | 
|---|
|  | 86 |  | 
|---|
| [5639] | 87 | #endif /* _Core_DynLibManager_H__ */ | 
|---|