#include <sdf/sdf.hh>
Public Member Functions | |
Element () | |
Constructor. More... | |
virtual | ~Element () |
Destructor. More... | |
void | AddAttribute (const std::string &_key, const std::string &_type, const std::string &_defaultvalue, bool _required, const std::string &_description="") |
Add an attribute value. More... | |
ElementPtr | AddElement (const std::string &_name) |
Add a named element. More... | |
void | AddElementDescription (ElementPtr _elem) |
Add a new element description. More... | |
void | AddValue (const std::string &_type, const std::string &_defaultValue, bool _required, const std::string &_description="") |
Add a value to this Element. More... | |
void | AddValue (const std::string &_type, const std::string &_defaultValue, bool _required, const std::string &_minValue, const std::string &_maxValue, const std::string &_description="") |
Add a value to this Element. More... | |
void | Clear () |
Remove all child elements and reset file path and original version. More... | |
void | ClearElements () |
Remove all child elements. More... | |
ElementPtr | Clone () const |
Create a copy of this Element. More... | |
void | Copy (const ElementPtr _elem) |
Copy values from an Element. More... | |
std::map< std::string, std::size_t > | CountNamedElements (const std::string &_type="") const |
Count the number of child elements of the specified element type that have the same name attribute value. More... | |
const std::string & | FilePath () const |
Get the path to the SDF document where this element came from. More... | |
template<typename T > | |
T | Get (const std::string &_key="") const |
Get the value of a key. More... | |
template<typename T > | |
std::pair< T, bool > | Get (const std::string &_key, const T &_defaultValue) const |
Get the value of a key. More... | |
template<typename T > | |
bool | Get (const std::string &_key, T &_param, const T &_defaultValue) const |
Get the value of a key. More... | |
std::any | GetAny (const std::string &_key="") const |
Get the element value/attribute as a std::any. More... | |
ParamPtr | GetAttribute (const std::string &_key) const |
Get the param of an attribute. More... | |
ParamPtr | GetAttribute (unsigned int _index) const |
Get an attribute using an index. More... | |
size_t | GetAttributeCount () const |
Get the number of attributes. More... | |
bool | GetAttributeSet (const std::string &_key) const |
Return true if the attribute was set (i.e. More... | |
bool | GetCopyChildren () const |
Return true if this Element's child elements should be copied during parsing. More... | |
std::string | GetDescription () const |
Get a text description of the element. More... | |
ElementPtr | GetElement (const std::string &_name) |
Return a pointer to the child element with the provided name. More... | |
ElementPtr | GetElementDescription (unsigned int _index) const |
Get an element description using an index. More... | |
ElementPtr | GetElementDescription (const std::string &_key) const |
Get an element description using a key. More... | |
size_t | GetElementDescriptionCount () const |
Get the number of element descriptions. More... | |
ElementPtr | GetElementImpl (const std::string &_name) const |
Get a pointer to the named element. More... | |
std::set< std::string > | GetElementTypeNames () const |
Get set of child element type names. More... | |
ElementPtr | GetFirstElement () const |
Get the first child element. More... | |
std::string | GetInclude () const |
Get the include filename. More... | |
const std::string & | GetName () const |
Get the Element's name. More... | |
ElementPtr | GetNextElement (const std::string &_name="") const |
Get the next sibling of this element. More... | |
ElementPtr | GetParent () const |
Get a pointer to this Element's parent. More... | |
const std::string & | GetRequired () const |
Get the requirement string. More... | |
ParamPtr | GetValue () const |
Get the param of the elements value return A Param pointer to the value of this element. More... | |
bool | HasAttribute (const std::string &_key) const |
Return true if an attribute exists. More... | |
bool | HasElement (const std::string &_name) const |
Return true if the named element exists. More... | |
bool | HasElementDescription (const std::string &_name) const |
Return true if an element description exists. More... | |
bool | HasUniqueChildNames (const std::string &_type="") const |
Checks whether any child elements of the specified element type have identical name attribute values and returns false if so. More... | |
void | InsertElement (ElementPtr _elem) |
Add an element object. More... | |
const std::string & | OriginalVersion () const |
Get the spec version that this was originally parsed from. More... | |
void | PrintDescription (const std::string &_prefix) const |
Output Element's description to stdout. More... | |
void | PrintDocLeftPane (std::string &_html, int _spacing, int &_index) const |
Helper function for SDF::PrintDoc. More... | |
void | PrintDocRightPane (std::string &_html, int _spacing, int &_index) const |
Helper function for SDF::PrintDoc. More... | |
void | PrintValues (std::string _prefix) const |
Output Element's values to stdout. More... | |
std::string | ReferenceSDF () const |
Get the name of the reference SDF element. More... | |
void | RemoveChild (ElementPtr _child) |
Remove a child element. More... | |
void | RemoveFromParent () |
Remove this element from its parent. More... | |
void | Reset () |
Call reset on each element and element description before deleting all of them. More... | |
template<typename T > | |
bool | Set (const T &_value) |
Set the value of this element. More... | |
void | SetCopyChildren (bool _value) |
Set whether this element should copy its child elements during parsing. More... | |
void | SetDescription (const std::string &_desc) |
Set a text description for the element. More... | |
void | SetFilePath (const std::string &_path) |
Set the path to the SDF document where this element came from. More... | |
void | SetInclude (const std::string &_filename) |
Set the include filename to the passed in filename. More... | |
void | SetName (const std::string &_name) |
Set the name of the Element. More... | |
void | SetOriginalVersion (const std::string &_version) |
Set the spec version that this was originally parsed from. More... | |
void | SetParent (const ElementPtr _parent) |
Set the parent of this Element. More... | |
void | SetReferenceSDF (const std::string &_value) |
Set reference SDF element. More... | |
void | SetRequired (const std::string &_req) |
Set the requirement type. More... | |
std::string | ToString (const std::string &_prefix) const |
Convert the element values to a string representation. More... | |
void | Update () |
Call the Update() callback on each element, as well as the embedded Param. More... | |
sdf::v10::Element::Element | ( | ) |
Constructor.
|
virtual |
Destructor.
void sdf::v10::Element::AddAttribute | ( | const std::string & | _key, |
const std::string & | _type, | ||
const std::string & | _defaultvalue, | ||
bool | _required, | ||
const std::string & | _description = "" |
||
) |
Add an attribute value.
[in] | _key | Key value. |
[in] | _type | Type of data the attribute will hold. |
[in] | _defaultValue | Default value for the attribute. |
[in] | _required | Requirement string. Element::SetRequired. |
[in] | _description | A text description of the attribute. |
sdf::AssertionInternalError | if an invalid type is given. |
ElementPtr sdf::v10::Element::AddElement | ( | const std::string & | _name | ) |
Add a named element.
[in] | _name | the name of the element to add. |
void sdf::v10::Element::AddElementDescription | ( | ElementPtr | _elem | ) |
Add a new element description.
[in] | _elem | the Element object to add to the descriptions. |
void sdf::v10::Element::AddValue | ( | const std::string & | _type, |
const std::string & | _defaultValue, | ||
bool | _required, | ||
const std::string & | _description = "" |
||
) |
Add a value to this Element.
[in] | _type | Type of data the parameter will hold. |
[in] | _defaultValue | Default value for the parameter. |
[in] | _required | Requirement string. Element::SetRequired. |
[in] | _description | A text description of the parameter. |
sdf::AssertionInternalError | if an invalid type is given. |
void sdf::v10::Element::AddValue | ( | const std::string & | _type, |
const std::string & | _defaultValue, | ||
bool | _required, | ||
const std::string & | _minValue, | ||
const std::string & | _maxValue, | ||
const std::string & | _description = "" |
||
) |
Add a value to this Element.
This override allows passing min and max values of the parameter.
[in] | _type | Type of data the parameter will hold. |
[in] | _defaultValue | Default value for the parameter. |
[in] | _required | Requirement string. Element::SetRequired. |
[in] | _minValue | Minimum allowed value for the parameter. |
[in] | _maxValue | Maximum allowed value for the parameter. |
[in] | _description | A text description of the parameter. |
sdf::AssertionInternalError | if an invalid type is given. |
void sdf::v10::Element::Clear | ( | ) |
Remove all child elements and reset file path and original version.
void sdf::v10::Element::ClearElements | ( | ) |
Remove all child elements.
ElementPtr sdf::v10::Element::Clone | ( | ) | const |
void sdf::v10::Element::Copy | ( | const ElementPtr | _elem | ) |
std::map<std::string, std::size_t> sdf::v10::Element::CountNamedElements | ( | const std::string & | _type = "" | ) | const |
Count the number of child elements of the specified element type that have the same name attribute value.
[in] | _type | The type of Element to check. If empty, count names of all child elements. |
const std::string& sdf::v10::Element::FilePath | ( | ) | const |
std::any sdf::v10::Element::GetAny | ( | const std::string & | _key = "" | ) | const |
Get the element value/attribute as a std::any.
[in] | _key | The key of the attribute. If empty, get the value of the element. Defaults to empty. |
ParamPtr sdf::v10::Element::GetAttribute | ( | const std::string & | _key | ) | const |
Get the param of an attribute.
[in] | _key | the name of the attribute. |
ParamPtr sdf::v10::Element::GetAttribute | ( | unsigned int | _index | ) | const |
Get an attribute using an index.
[in] | _index | the index of the attribute to get. |
size_t sdf::v10::Element::GetAttributeCount | ( | ) | const |
Get the number of attributes.
bool sdf::v10::Element::GetAttributeSet | ( | const std::string & | _key | ) | const |
Return true if the attribute was set (i.e.
not default value)
[in] | _key | the key to use to find the attribute. |
bool sdf::v10::Element::GetCopyChildren | ( | ) | const |
Return true if this Element's child elements should be copied during parsing.
std::string sdf::v10::Element::GetDescription | ( | ) | const |
Get a text description of the element.
ElementPtr sdf::v10::Element::GetElement | ( | const std::string & | _name | ) |
Return a pointer to the child element with the provided name.
A new child element, with the provided name, is added to this element if there is no existing child element.
[in] | _name | Name of the child element to retreive. |
ElementPtr sdf::v10::Element::GetElementDescription | ( | unsigned int | _index | ) | const |
Get an element description using an index.
[in] | _index | the index of the element description to get. |
ElementPtr sdf::v10::Element::GetElementDescription | ( | const std::string & | _key | ) | const |
Get an element description using a key.
[in] | _key | the key to use to find the element. |
size_t sdf::v10::Element::GetElementDescriptionCount | ( | ) | const |
Get the number of element descriptions.
ElementPtr sdf::v10::Element::GetElementImpl | ( | const std::string & | _name | ) | const |
Get a pointer to the named element.
[in] | _name | the name of the element to look for. |
std::set<std::string> sdf::v10::Element::GetElementTypeNames | ( | ) | const |
Get set of child element type names.
ElementPtr sdf::v10::Element::GetFirstElement | ( | ) | const |
Get the first child element.
std::string sdf::v10::Element::GetInclude | ( | ) | const |
Get the include filename.
const std::string& sdf::v10::Element::GetName | ( | ) | const |
ElementPtr sdf::v10::Element::GetNextElement | ( | const std::string & | _name = "" | ) | const |
Get the next sibling of this element.
[in] | _name | if given then filter siblings by their xml tag. |
This can be used in combination with GetFirstElement() to walk the SDF tree. First call parent->GetFirstElement() to get the first child. Call child = child->GetNextElement() to iterate through the children.
ElementPtr sdf::v10::Element::GetParent | ( | ) | const |
const std::string& sdf::v10::Element::GetRequired | ( | ) | const |
ParamPtr sdf::v10::Element::GetValue | ( | ) | const |
Get the param of the elements value return A Param pointer to the value of this element.
bool sdf::v10::Element::HasAttribute | ( | const std::string & | _key | ) | const |
Return true if an attribute exists.
[in] | _key | the key to use to find the attribute. |
bool sdf::v10::Element::HasElement | ( | const std::string & | _name | ) | const |
Return true if the named element exists.
[in] | _name | the name of the element to look for. |
bool sdf::v10::Element::HasElementDescription | ( | const std::string & | _name | ) | const |
Return true if an element description exists.
[in] | _name | the name of the element to find. |
bool sdf::v10::Element::HasUniqueChildNames | ( | const std::string & | _type = "" | ) | const |
Checks whether any child elements of the specified element type have identical name attribute values and returns false if so.
[in] | _type | The type of Element to check. If empty, check names of all child elements. |
void sdf::v10::Element::InsertElement | ( | ElementPtr | _elem | ) |
Add an element object.
[in] | _elem | the element object to add. |
const std::string& sdf::v10::Element::OriginalVersion | ( | ) | const |
Get the spec version that this was originally parsed from.
void sdf::v10::Element::PrintDescription | ( | const std::string & | _prefix | ) | const |
Output Element's description to stdout.
[in] | _prefix | String value to prefix to the output. |
void sdf::v10::Element::PrintDocLeftPane | ( | std::string & | _html, |
int | _spacing, | ||
int & | _index | ||
) | const |
Helper function for SDF::PrintDoc.
This generates the SDF html documentation.
[out] | _html | Accumulated HTML for output. |
[in] | _spacing | Amount of spacing for this element. |
[in] | _index | Unique index for this element. |
void sdf::v10::Element::PrintDocRightPane | ( | std::string & | _html, |
int | _spacing, | ||
int & | _index | ||
) | const |
Helper function for SDF::PrintDoc.
This generates the SDF html documentation.
[out] | _html | Accumulated HTML for output. |
[in] | _spacing | Amount of spacing for this element. |
void sdf::v10::Element::PrintValues | ( | std::string | _prefix | ) | const |
Output Element's values to stdout.
[in] | _prefix | String value to prefix to the output. |
std::string sdf::v10::Element::ReferenceSDF | ( | ) | const |
void sdf::v10::Element::RemoveChild | ( | ElementPtr | _child | ) |
Remove a child element.
[in] | _child | Pointer to the child to remove. |
void sdf::v10::Element::RemoveFromParent | ( | ) |
Remove this element from its parent.
void sdf::v10::Element::Reset | ( | ) |
Call reset on each element and element description before deleting all of them.
Also clear out the embedded Param.
void sdf::v10::Element::SetCopyChildren | ( | bool | _value | ) |
Set whether this element should copy its child elements during parsing.
[in] | _value | True to copy Element's children. |
void sdf::v10::Element::SetDescription | ( | const std::string & | _desc | ) |
Set a text description for the element.
[in] | _desc | the text description to set for the element. |
void sdf::v10::Element::SetFilePath | ( | const std::string & | _path | ) |
void sdf::v10::Element::SetInclude | ( | const std::string & | _filename | ) |
Set the include filename to the passed in filename.
[in] | _filename | the filename to set the include filename to. |
void sdf::v10::Element::SetName | ( | const std::string & | _name | ) |
void sdf::v10::Element::SetOriginalVersion | ( | const std::string & | _version | ) |
Set the spec version that this was originally parsed from.
[in] | _version | Spec version string. |
void sdf::v10::Element::SetParent | ( | const ElementPtr | _parent | ) |
Set the parent of this Element.
[in] | _parent | Paren for this element. |
void sdf::v10::Element::SetReferenceSDF | ( | const std::string & | _value | ) |
Set reference SDF element.
[in] | _value | Name of the reference sdf element. |
void sdf::v10::Element::SetRequired | ( | const std::string & | _req | ) |
Set the requirement type.
[in] | _req | Requirement type for this element: 0: Not required. 1: Exactly one element is required. +: One or more elements are required. *: Zero or more elements are required. |
std::string sdf::v10::Element::ToString | ( | const std::string & | _prefix | ) | const |
Convert the element values to a string representation.
[in] | _prefix | String value to prefix to the output. |
void sdf::v10::Element::Update | ( | ) |