XmlExportable.h
Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Sonic Visualiser
5  An audio file viewer and annotation editor.
6  Centre for Digital Music, Queen Mary, University of London.
7  This file copyright 2006 Chris Cannam.
8 
9  This program is free software; you can redistribute it and/or
10  modify it under the terms of the GNU General Public License as
11  published by the Free Software Foundation; either version 2 of the
12  License, or (at your option) any later version. See the file
13  COPYING included with this distribution for more information.
14 */
15 
16 #ifndef SV_XML_EXPORTABLE_H
17 #define SV_XML_EXPORTABLE_H
18 
19 #include <QString>
20 
21 #include "Debug.h"
22 
23 class QTextStream;
24 
26 {
27 public:
28  enum {
29  // The value NO_ID (-1) is never allocated as an export id
30  NO_ID = -1
31  };
32 
33  typedef int ExportId;
34 
36  virtual ~XmlExportable() { }
37 
43  ExportId getExportId() const;
44 
48  virtual void toXml(QTextStream &stream,
49  QString indent = "",
50  QString extraAttributes = "") const = 0;
51 
57  virtual QString toXmlString(QString indent = "",
58  QString extraAttributes = "") const;
59 
60  static QString encodeEntities(QString);
61 
62  static QString encodeColour(int r, int g, int b);
63 
64 private:
65  mutable int m_exportId;
66 };
67 
68 #endif
virtual void toXml(QTextStream &stream, QString indent="", QString extraAttributes="") const =0
Stream this exportable object out to XML on a text stream.
virtual QString toXmlString(QString indent="", QString extraAttributes="") const
Convert this exportable object to XML in a string.
static QString encodeEntities(QString)
static QString encodeColour(int r, int g, int b)
ExportId getExportId() const
Return the numerical export identifier for this object.
virtual ~XmlExportable()
Definition: XmlExportable.h:36