/** * @file xml_output.cpp * utility routines for writing XML * * @remark Copyright 2006 OProfile authors * @remark Read the file COPYING * * @author Dave Nomura */ #include <sstream> #include <iostream> #include "op_xml_out.h" #include "xml_output.h" using namespace std; #define MAX_XML_BUF 16384 static char buf[MAX_XML_BUF]; string tag_name(tag_t tag) { ostringstream out; out << xml_tag_name(tag); return out.str(); } string open_element(tag_t tag, bool with_attrs) { ostringstream out; buf[0] = '\0'; open_xml_element(tag, with_attrs, buf, MAX_XML_BUF); out << buf; return out.str(); } string close_element(tag_t tag, bool has_nested) { ostringstream out; buf[0] = '\0'; close_xml_element(tag, has_nested, buf, MAX_XML_BUF); out << buf; return out.str(); } string init_attr(tag_t attr, size_t value) { ostringstream out; buf[0] = '\0'; init_xml_int_attr(attr, value, buf, MAX_XML_BUF); out << buf; return out.str(); } string init_attr(tag_t attr, double value) { ostringstream out; buf[0] = '\0'; init_xml_dbl_attr(attr, value, buf, MAX_XML_BUF); out << buf; return out.str(); } string init_attr(tag_t attr, string const & str) { ostringstream out; buf[0] = '\0'; init_xml_str_attr(attr, str.c_str(), buf, MAX_XML_BUF); out << buf; return out.str(); }