X-Git-Url: http://deadsoftware.ru/gitweb?p=odcread.git;a=blobdiff_plain;f=store.h;h=a77febecbe6bb3514fc1a3b07e6a9ae8e835c858;hp=4e7360e782170315dafd917c53816b6ae5d141c4;hb=2466c23751f131a07432df964658c2de90315e7b;hpb=c71568094a35bbda781ac2070e50a59a3b5ac9f7 diff --git a/store.h b/store.h index 4e7360e..a77febe 100644 --- a/store.h +++ b/store.h @@ -26,12 +26,12 @@ namespace odc { */ class Store { private: - static const std::string TYPENAME; - static const TypeProxy PROXY; + static const TopTypeProxy PROXY; INTEGER d_id; public: + static const std::string TYPENAME; 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 *) static const SHORTCHAR OLDTYPE = 0xF2; // (* old type, i.e. already in dict *) @@ -45,16 +45,6 @@ namespace odc { INTEGER getId(); - /** - * Get the TypeName of this object. - * @see TypeRegister - */ - static const std::string &getType(); - /** - * Get the TypeName of the supertype of this object. Return 0 pointer if no supertype. - * @see TypeRegister - */ - static const std::string *getSuper(); /** * Get the TypeName for this object. */ @@ -63,7 +53,7 @@ namespace odc { * Get the TypePath to this object's type. * @see TypePath */ - void getTypePath(TypePath *path) const; + TypePath getTypePath() const; /** * PROCEDURE (s: Store) Domain (): Domain @@ -97,7 +87,7 @@ namespace odc { * source.Domain() = NIL guaranteed * source is not yet initialized guaranteed */ - virtual void internalize(Reader &reader); + virtual void internalize(Reader &reader); // PROCEDURE (s: Store) Internalize- (VAR rd: Reader), NEW, EXTENSIBLE; // VAR thisVersion: INTEGER; // BEGIN @@ -138,71 +128,42 @@ namespace odc { virtual void accept(Visitor &visitor) const; private: - void calcTypePath(TypePath * out, const std::string &name) const; + void calcTypePath(TypePath *out, const std::string &name) const; }; class Elem : public Store { private: - static const std::string TYPENAME; - static const TypeProxy PROXY; + static const TypeProxy PROXY; public: - Elem(INTEGER id); - - /** - * Get the TypeName of this object. - * @see TypeRegister - */ - static const std::string &getType(); - /** - * Get the TypeName of the supertype of this object. Return 0 pointer if no supertype. - * @see TypeRegister - */ - static const std::string *getSuper(); - /** - * Get the TypeName for this object. - */ + static const std::string TYPENAME; virtual const std::string &getTypeName() const; + Elem(INTEGER id); virtual void internalize(Reader &reader); }; class Model : public Elem { private: - static const std::string TYPENAME; - static const TypeProxy PROXY; + static const TypeProxy PROXY; public: - Model(INTEGER id); - - /** - * Get the TypeName of this object. - * @see TypeRegister - */ - static const std::string &getType(); - /** - * Get the TypeName of the supertype of this object. Return 0 pointer if no supertype. - * @see TypeRegister - */ - static const std::string *getSuper(); - /** - * Get the TypeName for this object. - */ + static const std::string TYPENAME; virtual const std::string &getTypeName() const; + Model(INTEGER id); virtual void internalize(Reader &reader); }; class ContainerModel : public Model { private: - static const std::string TYPENAME; - static const TypeProxy PROXY; + static const TypeProxy PROXY; public: - ContainerModel(INTEGER id); - static const std::string &getType(); - static const std::string *getSuper(); + static const std::string TYPENAME; virtual const std::string &getTypeName() const; + + ContainerModel(INTEGER id); virtual void internalize(Reader &reader); }; }