X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=store.h;h=039354d5b5c120737498795f9267a65babea13ca;hb=32b22b42cd974e98e8a56f5ac39a51c8990ef57c;hp=381cca7907670fe4565ad135eae331d52aa6319d;hpb=4618e826a4ebe5e60e1d2c419fca7da71657bf9b;p=odcread.git diff --git a/store.h b/store.h index 381cca7..039354d 100644 --- a/store.h +++ b/store.h @@ -4,8 +4,16 @@ #include #include +#include +#include + namespace odc { + class TypePath : public std::vector { + public: + std::string toString() const; + }; + /** * TYPE Store * ABSTRACT @@ -14,6 +22,9 @@ namespace odc { * Stores are used as base types for all objects that must be both extensible and persistent. */ class Store { + private: + INTEGER d_id; + public: static const SHORTCHAR NEWBASE = 0xF0; // (* new base type (level = 0), i.e. not yet in dict *) static const SHORTCHAR NEWEXT = 0xF1; // (* new extension type (level = 1), i.e. not yet in dict *) @@ -23,6 +34,12 @@ namespace odc { static const SHORTCHAR STORE = 0x82; // (* general store *) static const SHORTCHAR ELEM = 0x83; // (* elem store *) static const SHORTCHAR NEWLINK = 0x84; // (* link to another non-elem store in same file *) + + Store(INTEGER id); + + INTEGER getId(); + + /** * PROCEDURE (s: Store) Domain (): Domain * NEW @@ -87,6 +104,8 @@ namespace odc { * s1 = s guaranteed */ // FIXME + + virtual std::string toString() = 0; }; }