BPackageInfo: Add fileName property
The property is archived and unarchived, but otherwise not yet stored. If not set, FileName() returns CanonicalFileName(). Can be used for packages like haiku.hpkg etc. that don't have a properly qualified file name (yet).
This commit is contained in:
@@ -70,6 +70,9 @@ public:
|
|||||||
const BString& BasePackage() const;
|
const BString& BasePackage() const;
|
||||||
const BString& Checksum() const;
|
const BString& Checksum() const;
|
||||||
const BString& InstallPath() const;
|
const BString& InstallPath() const;
|
||||||
|
BString FileName() const;
|
||||||
|
// the explicitly set file name, if any, or
|
||||||
|
// CanonicalFileName() otherwise
|
||||||
|
|
||||||
uint32 Flags() const;
|
uint32 Flags() const;
|
||||||
|
|
||||||
@@ -116,6 +119,7 @@ public:
|
|||||||
void SetBasePackage(const BString& basePackage);
|
void SetBasePackage(const BString& basePackage);
|
||||||
void SetChecksum(const BString& checksum);
|
void SetChecksum(const BString& checksum);
|
||||||
void SetInstallPath(const BString& installPath);
|
void SetInstallPath(const BString& installPath);
|
||||||
|
void SetFileName(const BString& fileName);
|
||||||
|
|
||||||
void SetFlags(uint32 flags);
|
void SetFlags(uint32 flags);
|
||||||
|
|
||||||
@@ -299,6 +303,7 @@ private:
|
|||||||
|
|
||||||
BString fChecksum;
|
BString fChecksum;
|
||||||
BString fInstallPath;
|
BString fInstallPath;
|
||||||
|
BString fFileName;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -244,7 +244,8 @@ BPackageInfo::BPackageInfo(BMessage* archive, status_t* _error)
|
|||||||
&& (error = _ExtractStringList(archive, "replaces", fReplacesList))
|
&& (error = _ExtractStringList(archive, "replaces", fReplacesList))
|
||||||
== B_OK
|
== B_OK
|
||||||
&& (error = archive->FindString("checksum", &fChecksum)) == B_OK
|
&& (error = archive->FindString("checksum", &fChecksum)) == B_OK
|
||||||
&& (error = archive->FindString("install-path", &fInstallPath)) == B_OK) {
|
&& (error = archive->FindString("install-path", &fInstallPath)) == B_OK
|
||||||
|
&& (error = archive->FindString("file-name", &fFileName)) == B_OK) {
|
||||||
if (architecture >= 0
|
if (architecture >= 0
|
||||||
&& architecture <= B_PACKAGE_ARCHITECTURE_ENUM_COUNT) {
|
&& architecture <= B_PACKAGE_ARCHITECTURE_ENUM_COUNT) {
|
||||||
fArchitecture = (BPackageArchitecture)architecture;
|
fArchitecture = (BPackageArchitecture)architecture;
|
||||||
@@ -445,6 +446,13 @@ BPackageInfo::InstallPath() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BString
|
||||||
|
BPackageInfo::FileName() const
|
||||||
|
{
|
||||||
|
return fFileName.IsEmpty() ? CanonicalFileName() : fFileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
uint32
|
uint32
|
||||||
BPackageInfo::Flags() const
|
BPackageInfo::Flags() const
|
||||||
{
|
{
|
||||||
@@ -660,6 +668,13 @@ BPackageInfo::SetInstallPath(const BString& installPath)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
BPackageInfo::SetFileName(const BString& fileName)
|
||||||
|
{
|
||||||
|
fFileName = fileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BPackageInfo::SetVersion(const BPackageVersion& version)
|
BPackageInfo::SetVersion(const BPackageVersion& version)
|
||||||
{
|
{
|
||||||
@@ -947,6 +962,7 @@ BPackageInfo::Clear()
|
|||||||
fBasePackage.Truncate(0);
|
fBasePackage.Truncate(0);
|
||||||
fChecksum.Truncate(0);
|
fChecksum.Truncate(0);
|
||||||
fInstallPath.Truncate(0);
|
fInstallPath.Truncate(0);
|
||||||
|
fFileName.Truncate(0);
|
||||||
fFlags = 0;
|
fFlags = 0;
|
||||||
fArchitecture = B_PACKAGE_ARCHITECTURE_ENUM_COUNT;
|
fArchitecture = B_PACKAGE_ARCHITECTURE_ENUM_COUNT;
|
||||||
fVersion.Clear();
|
fVersion.Clear();
|
||||||
@@ -1009,7 +1025,8 @@ BPackageInfo::Archive(BMessage* archive, bool deep) const
|
|||||||
fFreshensList)) != B_OK
|
fFreshensList)) != B_OK
|
||||||
|| (error = archive->AddStrings("replaces", fReplacesList)) != B_OK
|
|| (error = archive->AddStrings("replaces", fReplacesList)) != B_OK
|
||||||
|| (error = archive->AddString("checksum", fChecksum)) != B_OK
|
|| (error = archive->AddString("checksum", fChecksum)) != B_OK
|
||||||
|| (error = archive->AddString("install-path", fInstallPath)) != B_OK) {
|
|| (error = archive->AddString("install-path", fInstallPath)) != B_OK
|
||||||
|
|| (error = archive->AddString("file-name", fFileName)) != B_OK) {
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1057,7 +1074,7 @@ BPackageInfo::GetConfigString(BString& _string) const
|
|||||||
.WriteFlags("flags", fFlags)
|
.WriteFlags("flags", fFlags)
|
||||||
.Write("checksum", fChecksum)
|
.Write("checksum", fChecksum)
|
||||||
.GetString(_string);
|
.GetString(_string);
|
||||||
// Note: fInstallPath can not be specified via .PackageInfo.
|
// Note: fInstallPath and fFileName can not be specified via .PackageInfo.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user