ManaPlus
xmlloader.cpp
Go to the documentation of this file.
1 /*
2  * The ManaPlus Client
3  * Copyright (C) 2004-2009 The Mana World Development Team
4  * Copyright (C) 2009-2010 The Mana Developers
5  * Copyright (C) 2011-2019 The ManaPlus Developers
6  *
7  * This file is part of The ManaPlus Client.
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program. If not, see <http://www.gnu.org/licenses/>.
21  */
22 
24 
25 #include "utils/checkutils.h"
26 
28 
29 #include "debug.h"
30 
31 namespace
32 {
34  {
36 
37  const std::string path;
38  const UseVirtFs useResman;
39  const SkipError skipError;
40 
41  static Resource *load(const void *const v)
42  {
43  if (v == nullptr)
44  return nullptr;
45  const ResourceLoader *const
46  rl = static_cast<const ResourceLoader *>(v);
47  return new XML::Document(rl->path,
48  rl->useResman,
49  rl->skipError);
50  }
51  };
52 
53 } // namespace
54 
55 XML::Document *Loader::getXml(const std::string &idPath,
56  const UseVirtFs useResman,
57  const SkipError skipError)
58 {
59  ResourceLoader rl = { idPath, useResman, skipError };
60  return static_cast<XML::Document*>(ResourceManager::get(
61  "xml_" + idPath, ResourceLoader::load, &rl));
62 }
Resource
Definition: resource.h:33
resourcemanager.h
XML::Document
Definition: libxml.h:52
A_DEFAULT_COPY
#define A_DEFAULT_COPY(func)
Definition: localconsts.h:40
bool
final
#define final
Definition: localconsts.h:45
checkutils.h
anonymous_namespace{xmlloader.cpp}::ResourceLoader
Definition: xmlloader.cpp:33
Loader::getXml
XML::Document * getXml(const std::string &idPath, const UseVirtFs useResman, const SkipError skipError)
Definition: xmlloader.cpp:55
std
Definition: mseprimitives.h:398
xmlloader.h
anonymous_namespace{xmlloader.cpp}::ResourceLoader::skipError
const SkipError skipError
Definition: xmlloader.cpp:39
AvatarDB::load
void load()
Definition: avatardb.cpp:45
ResourceManager::get
Resource * get(const std::string &idPath, generator fun, const void *const data)
Definition: resourcemanager.cpp:427
anonymous_namespace{xmlloader.cpp}::ResourceLoader::useResman
const UseVirtFs useResman
Definition: xmlloader.cpp:38
anonymous_namespace{xmlloader.cpp}::ResourceLoader::path
const std::string path
Definition: xmlloader.cpp:37
debug.h