#pragma once #include #include #include #include namespace nn { namespace hac { class HierarchicalIntegrityHeader : public fnd::IByteModel { public: struct sLayer { size_t offset; size_t size; size_t block_size; void operator=(const sLayer& other) { offset = other.offset; size = other.size; block_size = other.block_size; } bool operator==(const sLayer& other) const { return (offset == other.offset && size == other.size && block_size == other.block_size); } bool operator!=(const sLayer& other) const { return !(*this == other); } }; HierarchicalIntegrityHeader(); HierarchicalIntegrityHeader(const HierarchicalIntegrityHeader& other); void operator=(const HierarchicalIntegrityHeader& other); bool operator==(const HierarchicalIntegrityHeader& other) const; bool operator!=(const HierarchicalIntegrityHeader& other) const; // export/import binary void toBytes(); void fromBytes(const byte_t* bytes, size_t len); const fnd::Vec& getBytes() const; // variables void clear(); const fnd::List& getLayerInfo() const; void setLayerInfo(const fnd::List& layer_info); const fnd::List& getMasterHashList() const; void setMasterHashList(const fnd::List& master_hash_list); private: const std::string kModuleName = "HIERARCHICAL_INTEGRITY_HEADER"; // binary fnd::Vec mRawBinary; // data fnd::List mLayerInfo; fnd::List mMasterHashList; }; } }