annotate engine/core/util/resource/pool.cpp @ 384:621b062e752d

Modified the code blocks project files to fit with the new build system. Code blocks now uses scons to build each of the configurations. The python configurations build properly but fail during link with a bunch of undefined references insides of the swig generated dll, not sure why. Also updated the win32-config.py so that it no longer relies on variables defined outside of itself, this was causing code blocks to not be able to build. Updated a couple of the batch scripts so they run properly.
author vtchill@33b003aa-7bff-0310-803a-e67f0ece8222
date Wed, 20 Jan 2010 05:56:18 +0000
parents 376b8afc9a18
children a46368b3d8a0
rev   line source
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
1 /***************************************************************************
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
2 * Copyright (C) 2005-2008 by the FIFE team *
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
3 * http://www.fifengine.de *
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
4 * This file is part of FIFE. *
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
5 * *
46
90005975cdbb * Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 0
diff changeset
6 * FIFE is free software; you can redistribute it and/or *
90005975cdbb * Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 0
diff changeset
7 * modify it under the terms of the GNU Lesser General Public *
90005975cdbb * Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 0
diff changeset
8 * License as published by the Free Software Foundation; either *
90005975cdbb * Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 0
diff changeset
9 * version 2.1 of the License, or (at your option) any later version. *
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
10 * *
46
90005975cdbb * Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 0
diff changeset
11 * This library is distributed in the hope that it will be useful, *
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
46
90005975cdbb * Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 0
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
90005975cdbb * Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 0
diff changeset
14 * Lesser General Public License for more details. *
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
15 * *
46
90005975cdbb * Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 0
diff changeset
16 * You should have received a copy of the GNU Lesser General Public *
90005975cdbb * Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 0
diff changeset
17 * License along with this library; if not, write to the *
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
18 * Free Software Foundation, Inc., *
46
90005975cdbb * Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 0
diff changeset
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
20 ***************************************************************************/
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
21
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
22 // Standard C++ library includes
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
23
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
24 // 3rd party library includes
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
25
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
26 // FIFE includes
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
27 // These includes are split up in two parts, separated by one empty line
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
28 // First block: files included from the FIFE root src directory
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
29 // Second block: files included from the same folder
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
30 #include "util/base/exception.h"
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
31 #include "util/log/logger.h"
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
32
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
33 #include "pool.h"
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
34
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
35 namespace FIFE {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
36 static Logger _log(LM_POOL);
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
37
146
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
38 Pool::Pool(const std::string& name):
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
39 m_entries(),
100
69a7d40ccf62 added hashing to pool to improve techdemo loading time
jasoka@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 46
diff changeset
40 m_location_to_entry(),
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
41 m_loaders(),
146
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
42 m_name(name)
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
43 {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
44 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
45
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
46 Pool::~Pool() {
146
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
47 FL_LOG(_log, LMsg("Pool destroyed: ") << m_name);
144
d2f1e81fbe2c * Fixed a scons issue, where libraries checked for C instead of C++
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 100
diff changeset
48 printStatistics();
147
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
49 sanityCheck();
148
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
50 reset();
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
51 std::vector<ResourceLoader*>::iterator loader;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
52 for (loader = m_loaders.begin(); loader != m_loaders.end(); loader++) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
53 delete (*loader);
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
54 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
55 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
56
148
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
57 void Pool::reset() {
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
58 std::vector<PoolEntry*>::iterator entry;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
59 for (entry = m_entries.begin(); entry != m_entries.end(); entry++) {
146
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
60 // Warn about leaks, but at least display ALL of them
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
61 // Instead of bailing out with an exception in the FifeClass destructor.
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
62 if( (*entry)->resource && (*entry)->resource->getRefCount() > 0 ) {
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
63 FL_WARN(_log, LMsg(m_name + " leak: ") << (*entry)->location->getFilename());
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
64 (*entry)->resource = 0;
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
65 }
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
66 delete (*entry);
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
67 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
68 m_entries.clear();
100
69a7d40ccf62 added hashing to pool to improve techdemo loading time
jasoka@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 46
diff changeset
69 m_location_to_entry.clear();
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
70 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
71
148
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
72 int Pool::purgeLoadedResources() {
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
73 int count = 0;
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
74 std::vector<PoolEntry*>::iterator it;
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
75 for (it = m_entries.begin(); it != m_entries.end(); it++) {
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
76 PoolEntry* entry = *it;
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
77 if( entry->resource && entry->resource->getRefCount() == 0 ) {
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
78 delete entry->resource;
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
79 entry->resource = 0;
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
80 ++count;
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
81 }
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
82 }
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
83 return count;
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
84 }
72c25cc27d8b For your convenience pools now have a function
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 147
diff changeset
85
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
86 void Pool::addResourceLoader(ResourceLoader* loader) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
87 m_loaders.push_back(loader);
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
88 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
89
156
376b8afc9a18 Fixed a horrendous misconeception in the pool.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 152
diff changeset
90 int Pool::addResourceFromLocation(ResourceLocation* loc) {
100
69a7d40ccf62 added hashing to pool to improve techdemo loading time
jasoka@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 46
diff changeset
91 ResourceLocationToEntry::const_iterator it = m_location_to_entry.find(loc);
69a7d40ccf62 added hashing to pool to improve techdemo loading time
jasoka@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 46
diff changeset
92 if (it != m_location_to_entry.end()) {
156
376b8afc9a18 Fixed a horrendous misconeception in the pool.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 152
diff changeset
93 return it->second;
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
94 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
95
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
96 PoolEntry* entry = new PoolEntry();
156
376b8afc9a18 Fixed a horrendous misconeception in the pool.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 152
diff changeset
97 entry->location = loc->clone();
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
98 m_entries.push_back(entry);
146
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
99 size_t index = m_entries.size() - 1;
156
376b8afc9a18 Fixed a horrendous misconeception in the pool.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 152
diff changeset
100 m_location_to_entry[entry->location] = index;
146
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
101 return index;
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
102 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
103
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
104 int Pool::addResourceFromFile(const std::string& filename) {
156
376b8afc9a18 Fixed a horrendous misconeception in the pool.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 152
diff changeset
105 ResourceLocation r = ResourceLocation(filename);
376b8afc9a18 Fixed a horrendous misconeception in the pool.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 152
diff changeset
106 return addResourceFromLocation(&r);
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
107 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
108
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
109 IResource& Pool::get(unsigned int index, bool inc) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
110 if (index >= m_entries.size()) {
146
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
111 FL_ERR(_log, LMsg("Tried to get with index ") << index << ", only " << m_entries.size() << " items in pool " + m_name);
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
112 throw IndexOverflow( __FUNCTION__ );
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
113 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
114 IResource* res = NULL;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
115 PoolEntry* entry = m_entries[index];
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
116 if (entry->resource) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
117 res = entry->resource;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
118 } else {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
119 if (!entry->loader) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
120 findAndSetProvider(*entry);
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
121 } else {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
122 entry->resource = entry->loader->loadResource(*entry->location);
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
123 }
146
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
124
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
125 if (!entry->loader) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
126 LMsg msg("No suitable loader was found for resource ");
146
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
127 msg << "#" << index << "<" << entry->location->getFilename()
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
128 << "> in pool " << m_name;
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
129 FL_ERR(_log, msg);
146
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
130
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
131 throw NotFound(msg.str);
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
132 }
146
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
133
149
823544621b5b Removed the pool listener interface as purpose
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 148
diff changeset
134 // This branch will only be relevant if the resource has been
823544621b5b Removed the pool listener interface as purpose
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 148
diff changeset
135 // loaded successfully before, but for some reason the loader
823544621b5b Removed the pool listener interface as purpose
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 148
diff changeset
136 // can't load the resource anymore.
823544621b5b Removed the pool listener interface as purpose
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 148
diff changeset
137 // Maybe someone deleted a file under FIFE's hands?
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
138 if (!entry->resource) {
149
823544621b5b Removed the pool listener interface as purpose
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 148
diff changeset
139 LMsg msg("The loader was unable to load the resource ");
146
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
140 msg << "#" << index << "<" << entry->location->getFilename()
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
141 << "> in pool " << m_name;
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
142 FL_ERR(_log, msg);
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
143 throw NotFound(msg.str);
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
144 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
145 res = entry->resource;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
146 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
147 if (inc) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
148 res->addRef();
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
149 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
150 res->setPoolId(index);
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
151 return *res;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
152 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
153
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
154 void Pool::release(unsigned int index, bool dec) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
155 if (index >= m_entries.size()) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
156 throw IndexOverflow( __FUNCTION__ );
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
157 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
158
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
159 IResource* res = NULL;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
160 PoolEntry* entry = m_entries[index];
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
161 if (entry->resource) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
162 res = entry->resource;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
163 if (dec) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
164 res->decRef();
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
165 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
166 if(res->getRefCount() == 0) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
167 delete entry->resource;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
168 entry->resource = 0;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
169 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
170 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
171 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
172
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
173 int Pool::getResourceCount(int status) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
174 int amount = 0;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
175 std::vector<PoolEntry*>::iterator entry;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
176 for (entry = m_entries.begin(); entry != m_entries.end(); entry++) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
177 if (status & RES_LOADED) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
178 if ((*entry)->resource) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
179 amount++;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
180 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
181 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
182 if (status & RES_NON_LOADED) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
183 if (!(*entry)->resource) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
184 amount++;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
185 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
186 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
187 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
188 return amount;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
189 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
190
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
191 void Pool::findAndSetProvider(PoolEntry& entry) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
192 std::vector<ResourceLoader*>::iterator it = m_loaders.begin();
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
193 std::vector<ResourceLoader*>::iterator end = m_loaders.end();
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
194 if( it == end ) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
195 FL_PANIC(_log, "no loader constructors given for resource pool");
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
196 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
197 for(; it != end; ++it) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
198 IResource* res = (*it)->loadResource(*entry.location);
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
199 if (res) {
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
200 entry.resource = res;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
201 entry.loader = *it;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
202 return;
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
203 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
204 };
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
205 }
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
206
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
207 void Pool::printStatistics() {
144
d2f1e81fbe2c * Fixed a scons issue, where libraries checked for C instead of C++
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 100
diff changeset
208 FL_LOG(_log, LMsg("Pool not loaded =") << getResourceCount(RES_NON_LOADED));
d2f1e81fbe2c * Fixed a scons issue, where libraries checked for C instead of C++
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 100
diff changeset
209 FL_LOG(_log, LMsg("Pool loaded =") << getResourceCount(RES_LOADED));
146
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
210 int amount = 0;
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
211 std::vector<PoolEntry*>::iterator entry;
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
212 for (entry = m_entries.begin(); entry != m_entries.end(); entry++) {
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
213 if ((*entry)->resource) {
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
214 if ((*entry)->resource->getRefCount() > 0) {
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
215 amount++;
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
216 }
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
217 }
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
218 }
54b3984e1afc The getIndex function was a hack that shadowed another bug
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 144
diff changeset
219 FL_LOG(_log, LMsg("Pool locked =") << amount);
144
d2f1e81fbe2c * Fixed a scons issue, where libraries checked for C instead of C++
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 100
diff changeset
220 FL_LOG(_log, LMsg("Pool total size =") << m_entries.size());
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
221 }
147
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
222
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
223 void Pool::sanityCheck() {
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
224 // It is easy to mess up the important consistent
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
225 // less-than operator for the location classes.
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
226 // This will check if according to the '==' operator
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
227 // entries are duplicate (=memory leaks).
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
228 // Slow and inaccurate. But should barf at real messups.
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
229 for(unsigned i = 0; i != m_entries.size(); ++i) {
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
230 int count = 0;
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
231 for(unsigned j = i+1; j < m_entries.size(); ++j) {
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
232 if( *m_entries[i]->location == *m_entries[j]->location )
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
233 count ++;
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
234 }
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
235 if( 0 == count )
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
236 continue;
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
237 FL_WARN(_log, LMsg("Multiple entries: ") << m_entries[i]->location->getFilename()
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
238 << " #entries = " << (count+1) );
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
239 }
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
240 }
fb6ccb367dd1 Added just some docs and a sanityCheck against the
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 146
diff changeset
241
0
4a0efb7baf70 * Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
242 }