X-Git-Url: https://deadsoftware.ru/gitweb?p=odcread.git;a=blobdiff_plain;f=textmodel.h;h=07a8f646c56760606adf5607623a3a5260dd7d46;hp=bc1480873fbb389c0ad386654f330ed462afd8d4;hb=c71568094a35bbda781ac2070e50a59a3b5ac9f7;hpb=1a188eff533fe10218eaec174755abe1f19dfdde diff --git a/textmodel.h b/textmodel.h index bc14808..07a8f64 100644 --- a/textmodel.h +++ b/textmodel.h @@ -25,21 +25,32 @@ namespace odc { const size_t d_len; TextPiece(size_t len); virtual void read(Reader &reader) = 0; - virtual std::string toString() = 0; + virtual std::string toString() const = 0; + virtual void accept(Visitor &visitor) const = 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 toString() const; + virtual std::wstring getText() const; + virtual void accept(Visitor &visitor) const; }; 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 toString() const; + virtual std::string getText() const; + virtual void accept(Visitor &visitor) const; }; class ViewPiece : public TextPiece { @@ -47,7 +58,8 @@ namespace odc { public: ViewPiece(Store *view); virtual void read(Reader &reader); - virtual std::string toString(); + virtual std::string toString() const; + virtual void accept(Visitor &visitor) const; }; class StdTextModel : public TextModel { @@ -64,6 +76,7 @@ namespace odc { virtual void internalize(Reader &reader); virtual std::string toString(); + virtual void accept(Visitor &visitor) const; }; } // namespace odc