1 /*************************************************************************** 2 * Copyright (C) 2005-2019 by the FIFE team * 3 * http://www.fifengine.net * 4 * This file is part of FIFE. * 5 * * 6 * FIFE is free software; you can redistribute it and/or * 7 * modify it under the terms of the GNU Lesser General Public * 8 * License as published by the Free Software Foundation; either * 9 * version 2.1 of the License, or (at your option) any later version. * 10 * * 11 * This library is distributed in the hope that it will be useful, * 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 14 * Lesser General Public License for more details. * 15 * * 16 * You should have received a copy of the GNU Lesser General Public * 17 * License along with this library; if not, write to the * 18 * Free Software Foundation, Inc., * 19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * 20 ***************************************************************************/ 21 22 #ifndef FIFE_RESOURE_MANAGER_H 23 #define FIFE_RESOURE_MANAGER_H 24 25 // Standard C++ library includes 26 #include <map> 27 #include <string> 28 #include <vector> 29 30 // 3rd party library includes 31 32 // FIFE includes 33 // These includes are split up in two parts, separated by one empty line 34 // First block: files included from the FIFE root src directory 35 // Second block: files included from the same folder 36 #include "resource.h" 37 38 namespace FIFE { 39 40 /** IResourceManager 41 * 42 * An interface for managing resources. 43 * 44 * @see IResource 45 * @see IResourceLoader 46 * 47 */ 48 49 class IResourceManager { 50 public: 51 52 /** Default constructor. 53 */ IResourceManager()54 IResourceManager() { } 55 56 /** destructor 57 */ ~IResourceManager()58 virtual ~IResourceManager() { } 59 60 /** Gets the total amount of memory used by resources 61 * 62 * This function uses the IResource's getSize() function 63 * to calculate the total memory used. It does not include 64 * memory used by the internal resource manager book keeping 65 * structures. This value is only accurate if the resources 66 * getSize() function returns an accurate result. 67 * 68 * @return Total memory used 69 * 70 */ 71 virtual size_t getMemoryUsed() const = 0; 72 73 /** Returns the number of unloaded resources 74 * 75 * Gets the total number of resources created but not loaded. 76 * These resources have been defined in the resource manager 77 * but have yet to be loaded from disk. 78 * 79 * @return Total resources created 80 * 81 */ 82 virtual size_t getTotalResourcesCreated() const = 0; 83 84 /** Returns the number of loaded resources 85 * 86 * Gets the total number of resources created and loaded. 87 * These resources have been defined in the resource manager 88 * have been loaded from disk. 89 * 90 * @return Total resources loaded 91 * 92 */ 93 virtual size_t getTotalResourcesLoaded() const = 0; 94 95 /** Returns the number of defined resources 96 * 97 * Gets the total number of resources managed by the manager. 98 * 99 * @return Total resources managed 100 * 101 */ 102 virtual size_t getTotalResources() const = 0; 103 }; 104 105 } //FIFE 106 107 #endif 108