#ifndef NBTMODIFIER_ABSTRACTNAMEDTAG_H #define NBTMODIFIER_ABSTRACTNAMEDTAG_H #include "AbstractTag.h" #include class AbstractNamedTag : public AbstractTag { public: /** * Get the tag name * * @return The tag name */ const QString &name () const; /** * Set the tag name * * @param name The new tag name */ void setName (const QString &name); protected: explicit AbstractNamedTag (const quint8 id); virtual void readFromData (QDataStream &data) override; virtual void writeToData (QDataStream &data) const override; /** * Read a tag payload from a data stream * * @param data The data stream * * @return True if read is success, otherwise false */ virtual void readPayloadFromData (QDataStream &data) = 0; /** * Write a tag payload to a data stream * * @param data The data stream * * @return True if write is success, otherwise false */ virtual void writePayloadToData (QDataStream &data) const = 0; private: /** * The tag name */ QString m_name; }; #endif //NBTMODIFIER_ABSTRACTNAMEDTAG_H