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