Classes | Macros | Typedefs | Functions | Variables
SDF

Classes

class  sdf::v11::AssertionInternalError
 Class for generating Exceptions which come from sdf assertions. They include information about the assertion expression violated, function where problem appeared and assertion debug message. More...
 
class  sdf::v11::Console
 Message, error, warning, and logging functionality. More...
 
class  sdf::v11::ConsolePrivate
 
class  sdf::v11::Console::ConsoleStream
 An ostream-like class that we'll use for logging. More...
 
class  sdf::v11::Element
 SDF Element class. More...
 
class  sdf::v11::ElementPrivate
 
class  sdf::v11::Exception
 Class for generating exceptions. More...
 
class  sdf::v11::InternalError
 Class for generating Internal Gazebo Errors: those errors which should never happend and represent programming bugs. More...
 
class  sdf::v11::SDF
 Base SDF class. More...
 

Macros

#define sdfdbg   (sdf::Console::Instance()->Log("Dbg", __FILE__, __LINE__))
 Output a debug message. More...
 
#define sdferr
 Output an error message. More...
 
#define sdfmsg
 Output a message. More...
 
#define sdfthrow(msg)
 This macro logs an error to the throw stream and throws an exception that contains the file name and line number. More...
 
#define sdfwarn
 Output a warning message. More...
 

Typedefs

typedef std::shared_ptr< Consolesdf::v11::ConsolePtr
 

Functions

 sdf::v11::ConsolePrivate::ConsolePrivate ()
 Constructor. More...
 
 sdf::v11::Console::ConsoleStream::ConsoleStream (std::ostream *_stream)
 Constructor. More...
 
virtual sdf::v11::Console::~Console ()
 Destructor. More...
 
SDFORMAT_VISIBLE void sdf::v11::addURIPath (const std::string &_uri, const std::string &_path)
 Associate paths to a URI. More...
 
static void sdf::v11::Console::Clear ()
 Clear out the current console to make room for a new one. More...
 
ConsoleStreamsdf::v11::Console::ColorMsg (const std::string &lbl, const std::string &file, unsigned int line, int color)
 Use this to output a colored message to the terminal. More...
 
SDFORMAT_VISIBLE std::string sdf::v11::findFile (const std::string &_filename, bool _searchLocalPath, bool _useCallback, const ParserConfig &_config)
 Find the absolute path of a file. More...
 
SDFORMAT_VISIBLE std::string sdf::v11::findFile (const std::string &_filename, bool _searchLocalPath=true, bool _useCallback=false)
 Find the absolute path of a file. More...
 
template<typename T >
std::pair< T, bool > sdf::v11::Element::Get (const std::string &_key, const T &_defaultValue) const
 Get the value of a key. More...
 
template<typename T >
bool sdf::v11::Element::Get (const std::string &_key, T &_param, const T &_defaultValue) const
 Get the value of a key. More...
 
template<typename T >
sdf::v11::Element::Get (const std::string &_key="") const
 Get the value of a key. More...
 
ConsoleStreamsdf::v11::Console::GetLogStream ()
 Get the current log stream object. More...
 
ConsoleStreamsdf::v11::Console::GetMsgStream ()
 Get the current message stream object. More...
 
std::ostream * sdf::v11::Console::ConsoleStream::GetStream ()
 Get the current stream object. More...
 
static ConsolePtr sdf::v11::Console::Instance ()
 Return an instance to this class. More...
 
ConsoleStreamsdf::v11::Console::Log (const std::string &lbl, const std::string &file, unsigned int line)
 Use this to output a message to a log file at $HOME/.sdformat/sdformat.log. More...
 
template<class T >
ConsoleStreamsdf::v11::Console::ConsoleStream::operator<< (const T &_rhs)
 Redirect whatever is passed in to both our ostream (if non-NULL) and the log file (if open). More...
 
void sdf::v11::Console::ConsoleStream::Prefix (const std::string &_lbl, const std::string &_file, unsigned int _line, int _color)
 Print a prefix to both terminal and log file. More...
 
template<typename T >
bool sdf::v11::Element::Set (const T &_value)
 Set the value of this element. More...
 
SDFORMAT_VISIBLE void sdf::v11::setFindCallback (std::function< std::string(const std::string &)> _cb)
 Set the callback to use when SDF can't find a file. More...
 
void sdf::v11::Console::SetQuiet (bool _q)
 Set quiet output. More...
 
void sdf::v11::Console::ConsoleStream::SetStream (std::ostream *_stream)
 Set the stream object. More...
 

Variables

std::ofstream sdf::v11::ConsolePrivate::logFileStream
 logfile stream More...
 
Console::ConsoleStream sdf::v11::ConsolePrivate::logStream
 log stream More...
 
Console::ConsoleStream sdf::v11::ConsolePrivate::msgStream
 message stream More...
 

Detailed Description

Macro Definition Documentation

◆ sdfdbg

#define sdfdbg   (sdf::Console::Instance()->Log("Dbg", __FILE__, __LINE__))

Output a debug message.

◆ sdferr

#define sdferr
Value:
(sdf::Console::Instance()->ColorMsg("Error", \
__FILE__, __LINE__, 31))

Output an error message.

◆ sdfmsg

#define sdfmsg
Value:
(sdf::Console::Instance()->ColorMsg("Msg", \
__FILE__, __LINE__, 32))

Output a message.

◆ sdfthrow

#define sdfthrow (   msg)
Value:
{std::ostringstream throwStream;\
throwStream << msg << std::endl << std::flush;\
throw sdf::Exception(__FILE__, __LINE__, throwStream.str()); }

This macro logs an error to the throw stream and throws an exception that contains the file name and line number.

◆ sdfwarn

#define sdfwarn
Value:
(sdf::Console::Instance()->ColorMsg("Warning", \
__FILE__, __LINE__, 33))

Output a warning message.

Typedef Documentation

◆ ConsolePtr

typedef std::shared_ptr<Console> sdf::v11::ConsolePtr

Function Documentation

◆ ConsolePrivate()

sdf::v11::ConsolePrivate::ConsolePrivate ( )
inline

Constructor.

◆ ConsoleStream()

sdf::v11::Console::ConsoleStream::ConsoleStream ( std::ostream *  _stream)
inline

Constructor.

Parameters
[in]_streamPointer to an output stream operator. Can be NULL/nullptr.

◆ ~Console()

virtual sdf::v11::Console::~Console ( )
virtual

Destructor.

◆ addURIPath()

SDFORMAT_VISIBLE void sdf::v11::addURIPath ( const std::string &  _uri,
const std::string &  _path 
)

Associate paths to a URI.

Example paramters: "model://", "/usr/share/models:~/.gazebo/models"

Parameters
[in]_uriURI that will be mapped to _path
[in]_pathColon separated set of paths.

◆ Clear()

static void sdf::v11::Console::Clear ( )
static

Clear out the current console to make room for a new one.

◆ ColorMsg()

ConsoleStream& sdf::v11::Console::ColorMsg ( const std::string &  lbl,
const std::string &  file,
unsigned int  line,
int  color 
)

Use this to output a colored message to the terminal.

Parameters
[in]_lblText label
[in]_fileFile containing the error
[in]_lineLine containing the error
[in]_colorColor to make the label
Returns
Reference to an output stream

◆ findFile() [1/2]

SDFORMAT_VISIBLE std::string sdf::v11::findFile ( const std::string &  _filename,
bool  _searchLocalPath,
bool  _useCallback,
const ParserConfig _config 
)

Find the absolute path of a file.

This overload uses the URI path map and and the callback function configured in the input ParserConfig object instead of their global counterparts.

Parameters
[in]_filenameName of the file to find.
[in]_searchLocalPathTrue to search for the file in the current working directory.
[in]_useCallbackTrue to find a file based on a registered callback if the file is not found via the normal mechanism.
[in]_configCustom parser configuration
Returns
File's full path.

◆ findFile() [2/2]

SDFORMAT_VISIBLE std::string sdf::v11::findFile ( const std::string &  _filename,
bool  _searchLocalPath = true,
bool  _useCallback = false 
)

Find the absolute path of a file.

The search order in the function is as follows:

  1. Using the global URI path map, search in paths associated with the URI scheme of the input.
  2. Seach in the path defined by the macro SDF_SHARE_PATH.
  3. Search in the the libsdformat install path. The path is formed by has the pattern SDF_SHARE_PATH/sdformat<major version>/<version>/
  4. Directly check if the input path exists in the filesystem.
  5. Seach in the path defined by the environment variable SDF_PATH.
  6. If enabled via _searchLocalPath, prepend the input with the current working directory and check if the result path exists.
  7. If enabled via _useCallback and the global callback function is set, invoke the function and return its result.
Parameters
[in]_filenameName of the file to find.
[in]_searchLocalPathTrue to search for the file in the current working directory.
[in]_useCallbackTrue to find a file based on a registered callback if the file is not found via the normal mechanism.
Returns
File's full path.

◆ Get() [1/3]

template<typename T >
std::pair< T, bool > sdf::v11::Element::Get ( const std::string &  _key,
const T &  _defaultValue 
) const

Get the value of a key.

Parameters
[in]_keythe name of a child attribute or element.
[in]_defaultValuea default value to use if _key is not found.
Returns
A pair where the first element is the value of _key, and the second element is true when the _key was found and false otherwise.

◆ Get() [2/3]

template<typename T >
bool sdf::v11::Element::Get ( const std::string &  _key,
T &  _param,
const T &  _defaultValue 
) const

Get the value of a key.

Parameters
[in]_keythe name of a child attribute or element.
[out]_paramthe parameter output
[in]_defaultValuea default value to use if _key is not found.
Returns
True when the _key was found and false otherwise.

◆ Get() [3/3]

template<typename T >
T sdf::v11::Element::Get ( const std::string &  _key = "") const

Get the value of a key.

This function assumes the _key exists.

Parameters
[in]_keythe name of a child attribute or element.
Returns
The value of the _key.
See also
std::pair<T, bool> Get(const std::string &_key, const T &_defaultValue)

◆ GetLogStream()

ConsoleStream& sdf::v11::Console::GetLogStream ( )

Get the current log stream object.

This can be useful for redirecting the output, for example, to a std::stringstream for testing.

Returns
Mutable reference to current log stream object.

◆ GetMsgStream()

ConsoleStream& sdf::v11::Console::GetMsgStream ( )

Get the current message stream object.

This can be useful for redirecting the output, for example, to a std::stringstream for testing.

Returns
Mutable reference to current message stream object.

◆ GetStream()

std::ostream* sdf::v11::Console::ConsoleStream::GetStream ( )

Get the current stream object.

Returns
Pointer to current stream object.

◆ Instance()

static ConsolePtr sdf::v11::Console::Instance ( )
static

Return an instance to this class.

◆ Log()

ConsoleStream& sdf::v11::Console::Log ( const std::string &  lbl,
const std::string &  file,
unsigned int  line 
)

Use this to output a message to a log file at $HOME/.sdformat/sdformat.log.

To disable this log file, define the following symbol when compiling: SDFORMAT_DISABLE_CONSOLE_LOGFILE

Returns
Reference to output stream

◆ operator<<()

template<class T >
ConsoleStream& sdf::v11::Console::ConsoleStream::operator<< ( const T &  _rhs)

Redirect whatever is passed in to both our ostream (if non-NULL) and the log file (if open).

Parameters
[in]_rhsContent to be logged.
Returns
Reference to myself.

◆ Prefix()

void sdf::v11::Console::ConsoleStream::Prefix ( const std::string &  _lbl,
const std::string &  _file,
unsigned int  _line,
int  _color 
)

Print a prefix to both terminal and log file.

Parameters
[in]_lblText label
[in]_fileFile containing the error
[in]_lineLine containing the error
[in]_colorColor to make the label. Used only on terminal.

◆ Set()

template<typename T >
bool sdf::v11::Element::Set ( const T &  _value)

Set the value of this element.

Parameters
[in]_valuethe value to set.
Returns
True if the value was successfully set, false otherwise.

◆ setFindCallback()

SDFORMAT_VISIBLE void sdf::v11::setFindCallback ( std::function< std::string(const std::string &)>  _cb)

Set the callback to use when SDF can't find a file.

The callback should return a complete path to the requested file, or and empty string if the file was not found in the callback.

Parameters
[in]_cbThe callback function.

◆ SetQuiet()

void sdf::v11::Console::SetQuiet ( bool  _q)

Set quiet output.

Parameters
[in]qTrue to prevent warning

◆ SetStream()

void sdf::v11::Console::ConsoleStream::SetStream ( std::ostream *  _stream)

Set the stream object.

Parameters
[in]_streamPointer to an output stream. This can be useful for redirecting the output, for example, to a std::stringstream for testing.

Variable Documentation

◆ logFileStream

std::ofstream sdf::v11::ConsolePrivate::logFileStream

logfile stream

◆ logStream

Console::ConsoleStream sdf::v11::ConsolePrivate::logStream

log stream

◆ msgStream

Console::ConsoleStream sdf::v11::ConsolePrivate::msgStream

message stream

sdf::v11::Exception
Class for generating exceptions.
Definition: Exception.hh:48
sdf::v11::Console::Instance
static ConsolePtr Instance()
Return an instance to this class.