+struct ArchiveMemberHeader {
+ char Name[16];
+ char LastModified[12];
+ char UID[6];
+ char GID[6];
+ char AccessMode[8];
+ char Size[10]; ///< Size of data, not including header or padding.
+ char Terminator[2];
+
+ /// Get the name without looking up long names.
+ llvm::StringRef getName() const;
+
+ /// Members are not larger than 4GB.
+ uint32_t getSize() const;
+
+ sys::fs::perms getAccessMode() const;
+ sys::TimeValue getLastModified() const;
+ llvm::StringRef getRawLastModified() const {
+ return StringRef(LastModified, sizeof(LastModified)).rtrim(" ");
+ }
+ unsigned getUID() const;
+ unsigned getGID() const;
+};