Add support for adding a package-info to BRepositoryWriter.
This commit is contained in:
@@ -60,6 +60,7 @@ public:
|
||||
|
||||
status_t Init(const char* fileName);
|
||||
status_t AddPackage(const BEntry& packageEntry);
|
||||
status_t AddPackageInfo(const BPackageInfo& packageInfo);
|
||||
status_t Finish();
|
||||
|
||||
private:
|
||||
|
||||
@@ -41,11 +41,14 @@ public:
|
||||
|
||||
status_t Init(const char* fileName);
|
||||
status_t AddPackage(const BEntry& packageEntry);
|
||||
status_t AddPackageInfo(const BPackageInfo& packageInfo);
|
||||
status_t Finish();
|
||||
|
||||
private:
|
||||
status_t _Init(const char* fileName);
|
||||
status_t _AddPackage(const BEntry& packageEntry);
|
||||
status_t _AddPackageInfo(
|
||||
const BPackageInfo& packageInfo);
|
||||
status_t _Finish();
|
||||
|
||||
status_t _RegisterCurrentPackageInfo();
|
||||
|
||||
@@ -51,6 +51,16 @@ BRepositoryWriter::AddPackage(const BEntry& packageEntry)
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
BRepositoryWriter::AddPackageInfo(const BPackageInfo& packageInfo)
|
||||
{
|
||||
if (fImpl == NULL)
|
||||
return B_NO_INIT;
|
||||
|
||||
return fImpl->AddPackageInfo(packageInfo);
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
BRepositoryWriter::Finish()
|
||||
{
|
||||
|
||||
@@ -233,6 +233,20 @@ RepositoryWriterImpl::AddPackage(const BEntry& packageEntry)
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
RepositoryWriterImpl::AddPackageInfo(const BPackageInfo& packageInfo)
|
||||
{
|
||||
try {
|
||||
return _AddPackageInfo(packageInfo);
|
||||
} catch (status_t error) {
|
||||
return error;
|
||||
} catch (std::bad_alloc) {
|
||||
fListener->PrintError("Out of memory!\n");
|
||||
return B_NO_MEMORY;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
RepositoryWriterImpl::Finish()
|
||||
{
|
||||
@@ -350,6 +364,20 @@ RepositoryWriterImpl::_AddPackage(const BEntry& packageEntry)
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
RepositoryWriterImpl::_AddPackageInfo(const BPackageInfo& packageInfo)
|
||||
{
|
||||
fPackageInfo = packageInfo;
|
||||
|
||||
// register package's attributes
|
||||
status_t result = _RegisterCurrentPackageInfo();
|
||||
if (result != B_OK)
|
||||
return result;
|
||||
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
RepositoryWriterImpl::_RegisterCurrentPackageInfo()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user