This class contains configuration options for the libsdformat parser. More...
#include <ParserConfig.hh>
Public Types | |
using | SchemeToPathMap = std::map< std::string, std::vector< std::string > > |
type alias for the map from URI scheme to search directories More... | |
Public Member Functions | |
ParserConfig () | |
Default constructor. More... | |
void | AddURIPath (const std::string &_uri, const std::string &_path) |
Associate paths to a URI. More... | |
const std::vector< CustomModelParser > & | CustomModelParsers () const |
Get the registered custom model parsers. More... | |
const std::function< std::string(const std::string &)> & | FindFileCallback () const |
Get the find file callback function. More... | |
void | RegisterCustomModelParser (CustomModelParser _modelParser) |
Registers a custom model parser. More... | |
void | SetFindCallback (std::function< std::string(const std::string &)> _cb) |
Set the callback to use when libsdformat can't find a file. More... | |
void | SetUnrecognizedElementsPolicy (EnforcementPolicy _policy) |
Set the policy for unrecogonized elements without an xmlns. More... | |
void | SetWarningsPolicy (EnforcementPolicy _policy) |
Set the warning enforcment policy. More... | |
EnforcementPolicy | UnrecognizedElementsPolicy () const |
Get the current unrecognized elements policy. More... | |
const SchemeToPathMap & | URIPathMap () const |
Get the URI scheme to search directories map. More... | |
EnforcementPolicy | WarningsPolicy () const |
Get the current warning enforcement policy. More... | |
Static Public Member Functions | |
static ParserConfig & | GlobalConfig () |
Mutable access to a singleton ParserConfig that serves as the global ParserConfig object for all parsing operations that do not specify their own ParserConfig. More... | |
This class contains configuration options for the libsdformat parser.
The configuration options include:
For backward compatibility, the functions sdf::setFindCallback() and sdf::addURIPath() update a singleton ParserConfig object, which can be retrieved by ParserConfig::GlobalConfig().
The functions sdf::readFile(), sdf::readString(), and sdf::Root::Load() have overloads that take a ParserConfig object. If the ParserConfig object is omitted, these functions will use the singleton ParserConfig object.
Example: To set an additional URI scheme search directory without affecting the global config,
using sdf::v11::ParserConfig::SchemeToPathMap = std::map<std::string, std::vector<std::string> > |
type alias for the map from URI scheme to search directories
sdf::v11::ParserConfig::ParserConfig | ( | ) |
Default constructor.
void sdf::v11::ParserConfig::AddURIPath | ( | const std::string & | _uri, |
const std::string & | _path | ||
) |
Associate paths to a URI.
Example paramters: "model://", "/usr/share/models:~/.gazebo/models"
[in] | _uri | URI that will be mapped to _path |
[in] | _path | Colon separated set of paths. |
const std::vector<CustomModelParser>& sdf::v11::ParserConfig::CustomModelParsers | ( | ) | const |
Get the registered custom model parsers.
const std::function<std::string(const std::string &)>& sdf::v11::ParserConfig::FindFileCallback | ( | ) | const |
Get the find file callback function.
|
static |
Mutable access to a singleton ParserConfig that serves as the global ParserConfig object for all parsing operations that do not specify their own ParserConfig.
void sdf::v11::ParserConfig::RegisterCustomModelParser | ( | CustomModelParser | _modelParser | ) |
Registers a custom model parser.
[in] | _modelParser | Callback as described in sdf/InterfaceElements.hh. |
void sdf::v11::ParserConfig::SetFindCallback | ( | std::function< std::string(const std::string &)> | _cb | ) |
Set the callback to use when libsdformat can't find a file.
The callback should return a complete path to the requested file, or an empty string if the file was not found in the callback. Generally, the input argument is a URI or a file path (absolute or relative) obtained from a //include/uri
element. For example, if the value custom://model_name
is given in a //include/uri
, sdf::findFile() may invoke the callback with the argument custom://model_name
if it is unable to find a file using the steps listed in sdf::findfile().
Note, however, the input is not limited to URIs and file paths, and it is left up to the callback to interpret the contents of the input string.
[in] | _cb | The callback function. |
void sdf::v11::ParserConfig::SetUnrecognizedElementsPolicy | ( | EnforcementPolicy | _policy | ) |
Set the policy for unrecogonized elements without an xmlns.
[in] | _policy | The unrecognized elements enforcement policy |
void sdf::v11::ParserConfig::SetWarningsPolicy | ( | EnforcementPolicy | _policy | ) |
Set the warning enforcment policy.
[in] | _policy | policy enum value to set |
EnforcementPolicy sdf::v11::ParserConfig::UnrecognizedElementsPolicy | ( | ) | const |
Get the current unrecognized elements policy.
const SchemeToPathMap& sdf::v11::ParserConfig::URIPathMap | ( | ) | const |
Get the URI scheme to search directories map.
EnforcementPolicy sdf::v11::ParserConfig::WarningsPolicy | ( | ) | const |
Get the current warning enforcement policy.