1 #ifndef _STORE_H_
2 #define _STORE_H_
4 #include <string>
5 #include <vector>
15 /**
16 * TYPE Store
17 * ABSTRACT
18 * Storable extensible data types like Views.View or TextModels.Text are derived from Store.
19 * Stores are typically allocated by suitable directories, e.g., Views.Directory or TextModels.Directory.
20 * Stores are used as base types for all objects that must be both extensible and persistent.
21 */
26 INTEGER d_id;
31 static const SHORTCHAR NEWEXT = 0xF1; // (* new extension type (level = 1), i.e. not yet in dict *)
43 /**
44 * Get the TypeName for this object.
45 */
47 /**
48 * Get the TypePath to this object's type.
49 * I'm not sure why this was necessary, I think BlackBox uses them in some code
50 * I've omitted.
51 * @see TypePath
52 */
55 /**
56 * PROCEDURE (s: Store) Domain (): Domain
57 * NEW
58 * A store may be associated with a domain. This is done by the procedure InitDomain, which assigns a domain to the store.
59 * Domain may be called by arbitrary clients.
60 */
61 //Domain* getDomain();
63 /**
64 * Read the contents of "this" from reader.
65 * Just reads the version and checks that its in the allowed range.
66 */
69 // In BlackBox, a Store will also have an externalize(writer) method.
70 // The internalize and externalize should be compatible (internalize
71 // should be able to read what externalize writes).
73 /**
74 * A debug "toString".
75 */
78 /**
79 * Receiving end of the Visitor pattern.
80 */
85 };
87 /**
88 * An "Elem" store. Some kind of legacy BlackBox type that has been rolled into Store.
89 * I actually found it easier to keep the two separate.
90 */
100 /**
101 * Just calls super and reads the version and checks that its in the allowed range.
102 */
104 };
106 /**
107 * A "Model" store. The basis for all model objects (in MVC framework).
108 * Most objects of interest extend Model.
109 */
119 /**
120 * Just calls super and reads the version and checks that its in the allowed range.
121 */
123 };
125 /**
126 * Super type for models that contain other stuff (e.g. TextModel).
127 */
137 /**
138 * Just calls super and reads the version and checks that its in the allowed range.
139 */
141 };
142 }