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;