~singpolyma/biboumi

959291afe69de05aaa7ceeb61b3b0ede7a54bfea — Florent Le Coz 10 years ago 12a18ca
Set the parent of a node passed to add_child, and return it for conveniance
2 files changed, 14 insertions(+), 5 deletions(-)

M src/xmpp/xmpp_stanza.cpp
M src/xmpp/xmpp_stanza.hpp
M src/xmpp/xmpp_stanza.cpp => src/xmpp/xmpp_stanza.cpp +5 -3
@@ 152,15 152,17 @@ XmlNode* XmlNode::get_child(const std::string& name) const
  return nullptr;
}

void XmlNode::add_child(XmlNode* child)
XmlNode* XmlNode::add_child(XmlNode* child)
{
  child->parent = this;
  this->children.push_back(child);
  return child;
}

void XmlNode::add_child(XmlNode&& child)
XmlNode* XmlNode::add_child(XmlNode&& child)
{
  XmlNode* new_node = new XmlNode(std::move(child));
  this->add_child(new_node);
  return this->add_child(new_node);
}

XmlNode* XmlNode::get_last_child() const

M src/xmpp/xmpp_stanza.hpp => src/xmpp/xmpp_stanza.hpp +9 -2
@@ 77,8 77,15 @@ public:
   * Get a pointer to the first child element with that name
   */
  XmlNode* get_child(const std::string& name) const;
  void add_child(XmlNode* child);
  void add_child(XmlNode&& child);
  /**
   * Add a node child to this node. Assign this node to the child’s parent.
   * Returns a pointer to the newly added child.
   */
  XmlNode* add_child(XmlNode* child);
  XmlNode* add_child(XmlNode&& child);
  /**
   * Returns the last of the children
   */
  XmlNode* get_last_child() const;
  /**
   * Mark this node as closed, nothing else