Mercurial > hg > svcore
diff base/XmlExportable.h @ 123:0f37e92e1782
* 1502816 file export is too slow and memory-hungry
Use text stream when writing to file instead of accumulating into a string.
* 1500625 Auto-align in MIDI layer confusing
Make value extents convert to Hz in return value
* 1494623: Duplicate display of frame 0 from vamp plugin output
author | Chris Cannam |
---|---|
date | Thu, 15 Jun 2006 15:48:05 +0000 |
parents | ea730e3f9ace |
children | 3b8008d09541 |
line wrap: on
line diff
--- a/base/XmlExportable.h Thu Jun 15 12:28:47 2006 +0000 +++ b/base/XmlExportable.h Thu Jun 15 15:48:05 2006 +0000 @@ -19,11 +19,30 @@ #include <QString> #include <QColor> +class QTextStream; + class XmlExportable { public: virtual ~XmlExportable() { } + /** + * Stream this exportable object out to XML on a text stream. + * + * The default implementation calls toXmlString and streams the + * resulting string. This is only appropriate for objects with + * short representations. Bigger objects should override this + * method so as to write to the stream directly and override + * toXmlString with a method that calls this one, so that the + * direct streaming method can be used when appropriate. + */ + virtual void toXml(QTextStream &stream, + QString indent = "", + QString extraAttributes = "") const; + + /** + * Convert this exportable object to XML in a string. + */ virtual QString toXmlString(QString indent = "", QString extraAttributes = "") const = 0;