--- a/src/netanim/model/animation-interface.cc Wed Aug 26 22:05:34 2015 +0200
+++ b/src/netanim/model/animation-interface.cc Thu Aug 27 18:08:12 2015 -0700
@@ -1988,8 +1988,9 @@
// XML
-AnimationInterface::AnimXmlElement::AnimXmlElement (std::string tagName):
- m_tagName (tagName)
+AnimationInterface::AnimXmlElement::AnimXmlElement (std::string tagName, bool emptyElement):
+ m_tagName (tagName),
+ m_emptyElement (emptyElement)
{
m_elementString = "<" + tagName + " ";
}
@@ -2012,6 +2013,19 @@
}
void
+AnimationInterface::AnimXmlElement::CloseElement ()
+{
+ if (m_emptyElement)
+ {
+ m_elementString += "/>\n";
+ }
+ else
+ {
+ m_elementString += "</" + m_tagName + ">\n";
+ }
+}
+
+void
AnimationInterface::AnimXmlElement::CloseTag ()
{
m_elementString += ">";
@@ -2077,7 +2091,7 @@
element.AddAttribute ("sysId", sysId);
element.AddAttribute ("locX", locX);
element.AddAttribute ("locY", locY);
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2089,7 +2103,7 @@
element.AddAttribute ("fromId", fromId);
element.AddAttribute ("toId", toId);
element.AddAttribute ("ld", linkDescription);
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2119,7 +2133,7 @@
element.AddAttribute ("fd", lprop.fromNodeDescription);
element.AddAttribute ("td", lprop.toNodeDescription);
element.AddAttribute ("ld", lprop.linkDescription);
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2130,14 +2144,15 @@
element.AddAttribute ("t", Simulator::Now ().GetSeconds ());
element.AddAttribute ("id", nodeId);
element.AddAttribute ("info", routingInfo.c_str ());
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_routingF);
}
void
AnimationInterface::WriteXmlRp (uint32_t nodeId, std::string destination, Ipv4RoutePathElements rpElements)
{
- AnimXmlElement element ("rp");
+ std::string tagName = "rp";
+ AnimXmlElement element (tagName, false);
element.AddAttribute ("t", Simulator::Now ().GetSeconds ());
element.AddAttribute ("id", nodeId);
element.AddAttribute ("d", destination.c_str ());
@@ -2152,9 +2167,10 @@
AnimXmlElement rpeElement ("rpe");
rpeElement.AddAttribute ("n", rpElement.nodeId);
rpeElement.AddAttribute ("nH", rpElement.nextHop.c_str ());
- rpeElement.Close ();
+ rpeElement.CloseElement ();
element.Add (rpeElement);
}
+ element.CloseElement ();
WriteN (element.GetElementString (), m_routingF);
}
@@ -2170,7 +2186,7 @@
{
element.AddAttribute ("meta-info", metaInfo.c_str ());
}
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2182,7 +2198,7 @@
element.AddAttribute ("tId", tId);
element.AddAttribute ("fbRx", fbRx);
element.AddAttribute ("lbRx", lbRx);
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2201,7 +2217,7 @@
element.AddAttribute ("tId", tId);
element.AddAttribute ("fbRx", fbRx);
element.AddAttribute ("lbRx", lbRx);
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2212,7 +2228,7 @@
element.AddAttribute ("ncId", nodeCounterId);
element.AddAttribute ("n", counterName);
element.AddAttribute ("t", CounterTypeToString (counterType));
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2222,7 +2238,7 @@
AnimXmlElement element ("res");
element.AddAttribute ("rid", resourceId);
element.AddAttribute ("p", resourcePath);
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2234,7 +2250,7 @@
element.AddAttribute ("t", Simulator::Now ().GetSeconds ());
element.AddAttribute ("id", nodeId);
element.AddAttribute ("rid", resourceId);
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2247,7 +2263,7 @@
element.AddAttribute ("id", nodeId);
element.AddAttribute ("w", width);
element.AddAttribute ("h", height);
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2260,7 +2276,7 @@
element.AddAttribute ("id", nodeId);
element.AddAttribute ("x", x);
element.AddAttribute ("y", y);
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2274,7 +2290,7 @@
element.AddAttribute ("r", (uint32_t) r);
element.AddAttribute ("g", (uint32_t) g);
element.AddAttribute ("b", (uint32_t) b);
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2289,7 +2305,7 @@
{
element.AddAttribute ("descr", m_nodeDescriptions[nodeId]);
}
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2302,7 +2318,7 @@
element.AddAttribute ("i", nodeId);
element.AddAttribute ("t", Simulator::Now ().GetSeconds ());
element.AddAttribute ("v", counterValue);
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2316,7 +2332,7 @@
element.AddAttribute ("sx", scaleX);
element.AddAttribute ("sy", scaleY);
element.AddAttribute ("o", opacity);
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}
@@ -2327,7 +2343,7 @@
element.AddAttribute ("id", id);
element.AddAttribute ("ipv4Address", ipv4Address);
element.AddAttribute ("channelType", channelType);
- element.Close ();
+ element.CloseElement ();
WriteN (element.GetElementString (), m_f);
}