#pragma once #include #include #include namespace fnd { class LayeredIntegrityMetadata { 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); } }; LayeredIntegrityMetadata(); void operator=(const LayeredIntegrityMetadata& other); bool operator==(const LayeredIntegrityMetadata& other) const; bool operator!=(const LayeredIntegrityMetadata& other) const; const fnd::List& getHashLayerInfo() const; void setHashLayerInfo(const fnd::List& layer_info); const sLayer& getDataLayer() const; void setDataLayerInfo(const sLayer& data_info); const fnd::List& getMasterHashList() const; void setMasterHashList(const fnd::List& master_hash_list); bool getAlignHashToBlock() const; void setAlignHashToBlock(bool doAlign); private: // data fnd::List mLayerInfo; sLayer mDataLayer; fnd::List mMasterHashList; bool mDoAlignHashToBlock; }; }