DEADSOFTWARE

Successful read of StdTextModel (including actual text)
[odcread.git] / textmodel.h
1 #ifndef _TEXTMODEL_H_
2 #define _TEXTMODEL_H_
4 #include <oberon.h>
5 #include <typeregister.h>
6 #include <store.h>
8 namespace odc {
10 class TextModel : public ContainerModel {
11 private:
12 static const std::string TYPENAME;
13 static const TypeProxy<TextModel> PROXY;
15 public:
16 TextModel(INTEGER id);
17 static const std::string &getType();
18 static const std::string *getSuper();
19 virtual const std::string &getTypeName() const;
20 virtual void internalize(Reader &reader);
21 };
23 class TextPiece {
24 public:
25 const size_t d_len;
26 TextPiece(size_t len);
27 virtual void read(Reader &reader) = 0;
28 };
30 class LongPiece : public TextPiece {
31 public:
32 LongPiece(size_t len);
33 virtual void read(Reader &reader);
34 };
36 class ShortPiece : public TextPiece {
37 public:
38 ShortPiece(size_t len);
39 virtual void read(Reader &reader);
40 };
42 class ViewPiece : public TextPiece {
43 public:
44 ViewPiece();
45 virtual void read(Reader &reader);
46 };
48 class StdTextModel : public TextModel {
49 private:
50 static const std::string TYPENAME;
51 static const TypeProxy<StdTextModel> PROXY;
53 public:
54 StdTextModel(INTEGER id);
55 static const std::string &getType();
56 static const std::string *getSuper();
57 virtual const std::string &getTypeName() const;
58 virtual void internalize(Reader &reader);
59 };
61 } // namespace odc
63 #endif // _TEXTMODEL_H_