- typedef NodeMetadata* (*Factory)(std::istream&);
-
- NodeMetadata();
- virtual ~NodeMetadata();
-
- static NodeMetadata* deSerialize(std::istream &is);
- void serialize(std::ostream &os);
-
- // This usually is the CONTENT_ value
- virtual u16 typeId() const = 0;
- virtual NodeMetadata* clone() = 0;
- virtual void serializeBody(std::ostream &os) = 0;
- virtual std::string infoText() { return "<todo: remove this text>"; }
-
-protected:
- static void registerType(u16 id, Factory f);
-private:
- static core::map<u16, Factory> m_types;
-};