DEADSOFTWARE

Almost-correct toPlainText
[odcread.git] / textmodel.h
index 13a3d56df9803caf546a0907117f9d21e79e84f5..38eb7c55b73d0546c5884263a98e2ec01d53b474 100644 (file)
@@ -20,10 +20,51 @@ namespace odc {
                virtual void internalize(Reader &reader);
        };
 
+       class TextPiece {
+               public:
+               const size_t d_len;
+               TextPiece(size_t len);
+               virtual void read(Reader &reader) = 0;
+               virtual std::string toString() = 0;
+               virtual std::string toPlainText() = 0;
+       };
+
+       class LongPiece : public TextPiece {
+               private:
+               CHAR *d_buf;
+               public:
+               LongPiece(size_t len);
+               ~LongPiece();
+               virtual void read(Reader &reader);
+               virtual std::string toString();
+               virtual std::string toPlainText();
+       };
+
+       class ShortPiece : public TextPiece {
+               private:
+               SHORTCHAR *d_buf;
+               public:
+               ShortPiece(size_t len);
+               ~ShortPiece();
+               virtual void read(Reader &reader);
+               virtual std::string toString();
+               virtual std::string toPlainText();
+       };
+
+       class ViewPiece : public TextPiece {
+               Store *d_view;
+               public:
+               ViewPiece(Store *view);
+               virtual void read(Reader &reader);
+               virtual std::string toString();
+               virtual std::string toPlainText();
+       };
+
        class StdTextModel : public TextModel {
                private:
                static const std::string TYPENAME;
                static const TypeProxy<StdTextModel> PROXY;
+               std::vector<TextPiece *> d_pieces;
 
                public:
                StdTextModel(INTEGER id);
@@ -31,6 +72,9 @@ namespace odc {
                static const std::string *getSuper();
                virtual const std::string &getTypeName() const;
                virtual void internalize(Reader &reader);
+
+               virtual std::string toString();
+               virtual std::string toPlainText();
        };
 
 } // namespace odc