PackageInstaller: More cleanup and code simplifications

This commit is contained in:
Stephan Aßmus
2014-02-11 23:19:09 +01:00
parent bdcd6afc18
commit 4450737441
2 changed files with 50 additions and 46 deletions
@@ -105,9 +105,10 @@ InstalledPackageInfo::InitCheck()
status_t status_t
InstalledPackageInfo::SetTo(const char *packageName, const char *version, InstalledPackageInfo::SetTo(const char *packageName, const char *version,
bool create) bool create)
{ {
_ClearItemList(); _ClearItemList();
fCreate = create; fCreate = create;
fStatus = B_NO_INIT; fStatus = B_NO_INIT;
fVersion = version; fVersion = version;
@@ -179,8 +180,7 @@ InstalledPackageInfo::SetTo(const char *packageName, const char *version,
fInstalledItems.AddItem(new BString(itemPath)); // Or maybe BPath better? fInstalledItems.AddItem(new BString(itemPath)); // Or maybe BPath better?
} }
fIsUpToDate = true; fIsUpToDate = true;
} } else if (fStatus == B_ENTRY_NOT_FOUND) {
else if (fStatus == B_ENTRY_NOT_FOUND) {
if (create) { if (create) {
fStatus = B_OK; fStatus = B_OK;
fIsUpToDate = false; fIsUpToDate = false;
@@ -315,13 +315,8 @@ InstalledPackageInfo::Save()
void void
InstalledPackageInfo::_ClearItemList() InstalledPackageInfo::_ClearItemList()
{ {
// Clear the items list for (int32 i = fInstalledItems.CountItems() - 1; i >= 0; i--)
BString *iter; delete static_cast<BString*>(fInstalledItems.ItemAtFast(i));
uint32 i, count = fInstalledItems.CountItems(); fInstalledItems.MakeEmpty();
for (i = 0; i < count; i++) {
iter = static_cast<BString *>(fInstalledItems.ItemAt(0));
fInstalledItems.RemoveItem((int32)0);
delete iter;
}
} }
@@ -5,8 +5,8 @@
* Author: * Author:
* Łukasz 'Sil2100' Zemczak <[email protected]> * Łukasz 'Sil2100' Zemczak <[email protected]>
*/ */
#ifndef INSTALLEDPACKAGEINFO_H #ifndef INSTALLED_PACKAGE_INFO_H
#define INSTALLEDPACKAGEINFO_H #define INSTALLED_PACKAGE_INFO_H
#include <File.h> #include <File.h>
#include <String.h> #include <String.h>
@@ -25,51 +25,60 @@ extern const char * kPackagesDir;
// Useful function for fetching the package name and version without parsing all // Useful function for fetching the package name and version without parsing all
// other data // other data
status_t info_get_package_name(const char *filename, BString &name); status_t info_get_package_name(const char* filename, BString& name);
status_t info_get_package_version(const char *filename, BString &name); status_t info_get_package_version(const char* filename, BString& name);
class InstalledPackageInfo { class InstalledPackageInfo {
public: public:
InstalledPackageInfo(); InstalledPackageInfo();
InstalledPackageInfo(const char *packageName, const char *version = NULL, InstalledPackageInfo(const char* packageName,
bool create = false); const char* version = NULL,
~InstalledPackageInfo(); bool create = false);
~InstalledPackageInfo();
status_t InitCheck(); status_t InitCheck();
status_t SetTo(const char *packageName, const char *version = NULL, status_t SetTo(const char* packageName,
bool create = false); const char* version = NULL,
bool create = false);
void SetName(const char *name) { fName = name; } void SetName(const char* name)
const char *GetName() { return fName.String(); } { fName = name; }
void SetDescription(const char *description) { fDescription = description; } const char* Name()
const char *GetDescription() { return fDescription.String(); } { return fName.String(); }
//void SetVersion(const char *version) { fVersion = version; } void SetDescription(const char* description)
const char *GetVersion() { return fVersion.String(); } { fDescription = description; }
void SetSpaceNeeded(uint64 size) { fSpaceNeeded = size; } const char* Description()
uint64 GetSpaceNeeded() { return fSpaceNeeded; } { return fDescription.String(); }
const char* Version()
{ return fVersion.String(); }
void SetSpaceNeeded(uint64 size)
{ fSpaceNeeded = size; }
uint64 SpaceNeeded()
{ return fSpaceNeeded; }
status_t AddItem(const char *itemName); status_t AddItem(const char* itemName);
status_t Uninstall(); status_t Uninstall();
status_t Save(); status_t Save();
private: private:
void _ClearItemList(); void _ClearItemList();
status_t fStatus; private:
bool fIsUpToDate; status_t fStatus;
bool fCreate; bool fIsUpToDate;
bool fCreate;
BString fName; BString fName;
BString fDescription; BString fDescription;
BString fVersion; BString fVersion;
uint64 fSpaceNeeded; uint64 fSpaceNeeded;
BList fInstalledItems; BList fInstalledItems;
BPath fPathToInfo; BPath fPathToInfo;
}; };
#endif #endif // INSTALLED_PACKAGE_INFO_H