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 <gz/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 public: void URDFSetPreserveFixedJoint(bool _preserveFixedJoint);
173
175 public: bool URDFPreserveFixedJoint() const;
176
178 IGN_UTILS_IMPL_PTR(dataPtr)
179};
180}
181}
182
183#endif
This class contains configuration options for the libsdformat parser.
Definition: ParserConfig.hh:85
void AddURIPath(const std::string &_uri, const std::string &_path)
Associate paths to a URI.
void URDFSetPreserveFixedJoint(bool _preserveFixedJoint)
Set the preserveFixedJoint flag.
void ResetDeprecatedElementsPolicy()
Resets the policy for deprecated elements so that it follows WarningsPolicy.
void SetDeprecatedElementsPolicy(EnforcementPolicy _policy)
Set the policy for deprecated elements.
void SetUnrecognizedElementsPolicy(EnforcementPolicy _policy)
Set the policy for unrecogonized elements without an xmlns.
void SetFindCallback(std::function< std::string(const std::string &)> _cb)
Set the callback to use when libsdformat can't find a file.
const SchemeToPathMap & URIPathMap() const
Get the URI scheme to search directories map.
void RegisterCustomModelParser(CustomModelParser _modelParser)
Registers a custom model parser.
EnforcementPolicy UnrecognizedElementsPolicy() const
Get the current unrecognized elements policy.
std::map< std::string, std::vector< std::string > > SchemeToPathMap
type alias for the map from URI scheme to search directories
Definition: ParserConfig.hh:88
EnforcementPolicy WarningsPolicy() const
Get the current warning enforcement policy.
void SetWarningsPolicy(EnforcementPolicy _policy)
Set the warning enforcment policy.
const std::vector< CustomModelParser > & CustomModelParsers() const
Get the registered custom model parsers.
bool URDFPreserveFixedJoint() const
Get the preserveFixedJoint flag value.
const std::function< std::string(const std::string &)> & FindFileCallback() const
Get the find file callback function.
static ParserConfig & GlobalConfig()
Mutable access to a singleton ParserConfig that serves as the global ParserConfig object for all pars...
EnforcementPolicy DeprecatedElementsPolicy() const
Get the current deprecated elements policy.
EnforcementPolicy
Policy to describe how to treat certain conditions when parsing.
Definition: ParserConfig.hh:40
std::function< sdf::InterfaceModelPtr(const sdf::NestedInclude &, Errors &)> CustomModelParser
Defines a custom model parser.
Definition: InterfaceElements.hh:265
namespace for Simulation Description Format parser
Definition: Actor.hh:35
#define SDFORMAT_VISIBLE
Use to represent "symbol visible" if supported.
Definition: system_util.hh:25