Add missing getters. They will be used in llvm-ar.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185937 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2013-07-09 12:49:24 +00:00
parent 2012593f18
commit 9941bdd1fe
2 changed files with 46 additions and 0 deletions

View File

@ -61,6 +61,38 @@ uint32_t ArchiveMemberHeader::getSize() const {
return Ret;
}
sys::fs::perms ArchiveMemberHeader::getAccessMode() const {
unsigned Ret;
if (StringRef(AccessMode, sizeof(AccessMode)).rtrim(" ").getAsInteger(8, Ret))
llvm_unreachable("Access mode is not an octal number.");
return static_cast<sys::fs::perms>(Ret);
}
sys::TimeValue ArchiveMemberHeader::getLastModified() const {
unsigned Seconds;
if (StringRef(LastModified, sizeof(LastModified)).rtrim(" ")
.getAsInteger(10, Seconds))
llvm_unreachable("Last modified time not a decimal number.");
sys::TimeValue Ret;
Ret.fromEpochTime(Seconds);
return Ret;
}
unsigned ArchiveMemberHeader::getUID() const {
unsigned Ret;
if (StringRef(UID, sizeof(UID)).rtrim(" ").getAsInteger(10, Ret))
llvm_unreachable("UID time not a decimal number.");
return Ret;
}
unsigned ArchiveMemberHeader::getGID() const {
unsigned Ret;
if (StringRef(GID, sizeof(GID)).rtrim(" ").getAsInteger(10, Ret))
llvm_unreachable("GID time not a decimal number.");
return Ret;
}
static const ArchiveMemberHeader *toHeader(const char *base) {
return reinterpret_cast<const ArchiveMemberHeader *>(base);
}