33 SharedPtr<XMLDOM::XMLDocument>
parsed;
80 if (it->second.parsed.get() == 0)
81 it->second.load(path);
else
83 return it->second.parsed;
94 if (it->second.parsed.get() == 0)
97 return it->second.parsed;
106 static map<string, VSFileSystem::VSFileType> enumMap;
107 if (enumMap.empty()) {
152 using namespace __impl;
166 if (data->loadedDefinitions.count(path) == 0) {
174 if (data->loadedDefinitions.count(path) == 0) {
175 TemplateManagerData::DefinitionFileInfo &info = data->loadedDefinitions[path];
176 info.expirationTime = 0;
177 info.lastUsageTime = 0;
178 info.parsed = definition;
192 return data->getDefinitionFile(path);
194 addDefinitionFile(path,
false);
195 return data->getDefinitionFile(path);
202 data->defaultDefinitionFile =
x;
208 return data->defaultDefinitionFile;
214 SharedPtr<SourceTemplate> rv;
216 TemplateManagerData::TemplateMap::const_iterator it = data->loadedTemplates.find(name);
217 if (it != data->loadedTemplates.end())
218 rv = it->second.lock();
221 rv = loadSourceTemplate(name);
222 data->loadedTemplates[name] = rv;
231 string::size_type sep = name.find_first_of(
':');
232 SharedPtr<XMLDOM::XMLDocument> def;
234 if (sep != string::npos)
235 def = getDefinitionFile(name.substr(0,sep));
else
236 def = getDefinitionFile(getDefaultDefinitionFile());
239 if (sep != string::npos)
240 tdef = def->getElementByName(name.substr(sep+1, string::npos));
else
241 tdef = def->getElementByName(name);
257 SharedPtr<SourceTemplate> rv(
291 addSourceTemplate(empty, name, tpl, perm);
295 throw(ResourceAlreadyLoadedException)
297 string key(path +
":" + name);
298 SharedPtr<SourceTemplate> rv;
300 TemplateManagerData::TemplateMap::const_iterator it = data->loadedTemplates.find(key);
301 if (it != data->loadedTemplates.end())
302 rv = it->second.lock();
306 data->loadedTemplates[key] = rv;
308 data->permLoadedTemplates[key] = rv;
310 throw ResourceAlreadyLoadedException(key);