20 return string(
"Int8");
22 return string(
"UInt8");
24 return string(
"Byte");
26 return string(
"Int16");
28 return string(
"UInt16");
30 return string(
"Int32");
32 return string(
"UInt32");
34 return string(
"Int64");
36 return string(
"UInt64");
39 throw InternalErr(__FILE__, __LINE__,
"Invalid enumeration basetype.");
44 void D4EnumDef::print_enum_const(
XMLWriter *xml,
const enum_val ev)
46 if (xmlTextWriterStartElement(xml->
get_writer(), (
const xmlChar*)
"EnumConst") < 0)
47 throw InternalErr(__FILE__, __LINE__,
"Could not write EnumConst element");
49 if (xmlTextWriterWriteAttribute(xml->
get_writer(), (
const xmlChar*)
"name", (
const xmlChar*)ev.d_item.c_str()) < 0)
50 throw InternalErr(__FILE__, __LINE__,
"Could not write attribute for name");
54 if (xmlTextWriterWriteAttribute(xml->
get_writer(), (
const xmlChar*)
"value", (
const xmlChar*)oss.str().c_str()) < 0)
55 throw InternalErr(__FILE__, __LINE__,
"Could not write attribute for value");
57 if (xmlTextWriterEndElement(xml->
get_writer()) < 0)
58 throw InternalErr(__FILE__, __LINE__,
"Could not end EnumConst element");
64 if (xmlTextWriterStartElement(xml.
get_writer(), (
const xmlChar*)
"Enumeration") < 0)
65 throw InternalErr(__FILE__, __LINE__,
"Could not write Enumeration element");
67 if (xmlTextWriterWriteAttribute(xml.
get_writer(), (
const xmlChar*)
"name", (
const xmlChar*)d_name.c_str()) < 0)
68 throw InternalErr(__FILE__, __LINE__,
"Could not write attribute for name");
70 if (xmlTextWriterWriteAttribute(xml.
get_writer(), (
const xmlChar*)
"basetype", (
const xmlChar*)
type_name(d_type).c_str()) < 0)
71 throw InternalErr(__FILE__, __LINE__,
"Could not write attribute for name");
73 for_each(d_values.begin(), d_values.end(), bind1st(ptr_fun(print_enum_const), &xml));
75 if (xmlTextWriterEndElement(xml.
get_writer()) < 0)
76 throw InternalErr(__FILE__, __LINE__,
"Could not end Enumeration element");
void print_xml_writer(XMLWriter &xml)
A class for software fault reporting.
xmlTextWriterPtr get_writer()
string type_name(Type t)
Returns the type of the class instance as a string.