Loading...
Searching...
No Matches
ParserConfig.hh
Go to the documentation of this file.
1/*
2 * Copyright 2020 Open Source Robotics Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 */
17
18#ifndef SDF_PARSER_CONFIG_HH_
19#define SDF_PARSER_CONFIG_HH_
20
21#include <functional>
22#include <map>
23#include <string>
24#include <vector>
25
26#include <ignition/utils/ImplPtr.hh>
27
28#include "sdf/Error.hh"
30#include "sdf/sdf_config.h"
31#include "sdf/system_util.hh"
32
33
34namespace sdf
35{
36inline namespace SDF_VERSION_NAMESPACE
37{
40{
42 ERR,
43
45 WARN,
46
48 LOG,
49};
50
51// Forward declare private data class.
52class ParserConfigPrivate;
53
85{
87 public: using SchemeToPathMap =
88 std::map<std::string, std::vector<std::string> >;
89
91 public: ParserConfig();
92
97 public: static ParserConfig &GlobalConfig();
98
101 public: const std::function<std::string(const std::string &)> &
103
117 public: void SetFindCallback(
118 std::function<std::string(const std::string &)> _cb);
119
122 public: const SchemeToPathMap &URIPathMap() const;
123
129 public: void AddURIPath(const std::string &_uri, const std::string &_path);
130
134
138
142
146
150
154
162
167
169 public: const std::vector<CustomModelParser> &CustomModelParsers() const;
170
172 IGN_UTILS_IMPL_PTR(dataPtr)
173};
174}
175}
176
177#endif
This class contains configuration options for the libsdformat parser.
Definition ParserConfig.hh:85
const SchemeToPathMap & URIPathMap() const
Get the URI scheme to search directories map.
void AddURIPath(const std::string &_uri, const std::string &_path)
Associate paths to a URI.
EnforcementPolicy WarningsPolicy() const
Get the current warning enforcement policy.
void SetDeprecatedElementsPolicy(EnforcementPolicy _policy)
Set the policy for deprecated elements.
std::map< std::string, std::vector< std::string > > SchemeToPathMap
type alias for the map from URI scheme to search directories
Definition ParserConfig.hh:88
const std::function< std::string(const std::string &)> & FindFileCallback() const
Get the find file callback function.
EnforcementPolicy UnrecognizedElementsPolicy() const
Get the current unrecognized elements policy.
void ResetDeprecatedElementsPolicy()
Resets the policy for deprecated elements so that it follows WarningsPolicy.
ParserConfig()
Default constructor.
void RegisterCustomModelParser(CustomModelParser _modelParser)
Registers a custom model parser.
void SetFindCallback(std::function< std::string(const std::string &)> _cb)
Set the callback to use when libsdformat can't find a file.
void SetUnrecognizedElementsPolicy(EnforcementPolicy _policy)
Set the policy for unrecogonized elements without an xmlns.
void SetWarningsPolicy(EnforcementPolicy _policy)
Set the warning enforcment policy.
static ParserConfig & GlobalConfig()
Mutable access to a singleton ParserConfig that serves as the global ParserConfig object for all pars...
const std::vector< CustomModelParser > & CustomModelParsers() const
Get the registered custom model parsers.
EnforcementPolicy DeprecatedElementsPolicy() const
Get the current deprecated elements policy.
std::function< sdf::InterfaceModelPtr(const sdf::NestedInclude &, Errors &)> CustomModelParser
Defines a custom model parser.
Definition InterfaceElements.hh:254
EnforcementPolicy
Policy to describe how to treat certain conditions when parsing.
Definition ParserConfig.hh:40
namespace for Simulation Description Format parser
Definition Actor.hh:34
#define SDFORMAT_VISIBLE
Use to represent "symbol visible" if supported.
Definition system_util.hh:41