+/*
+ * Copied from pugixml samples
+ */
+struct xml_string_writer : pugi::xml_writer {
+ std::string result;
+
+ void write(const void *data, size_t size) override {
+ result.append(static_cast<const char *>(data), size);
+ }
+};
+
+std::string node_to_string(pugi::xml_node node) {
+ xml_string_writer writer;
+ node.print(writer);
+
+ return writer.result;
+}
+
+string buildXmlData(const string &messageName,
+ const string &ieName,
+ vector<string> &RANfunctionsAdded,
+ vector<string> &RANfunctionsModified,
+ unsigned char *buffer,
+ size_t size) {
+ pugi::xml_document *doc = new pugi::xml_document();
+
+ char RANfunctionsAddedID[8];
+ snprintf(RANfunctionsAddedID, 8, "%d", (int) ProtocolIE_ID_id_RANfunctionsAdded);
+ char RANfunctionsModifiedID[8];
+ snprintf(RANfunctionsModifiedID, 8, "%d", (int) ProtocolIE_ID_id_RANfunctionsModified);
+ char GlobalE2nodeID[8];
+ snprintf(GlobalE2nodeID, 8, "%d", (int) ProtocolIE_ID_id_GlobalE2node_ID);