haiku/headers/os/package/RepositoryInfo.h

98 lines
2.5 KiB
C
Raw Normal View History

/*
* Copyright 2011-2018, Haiku, Inc.
* Distributed under the terms of the MIT License.
*/
#ifndef _PACKAGE__REPOSITORY_INFO_H_
#define _PACKAGE__REPOSITORY_INFO_H_
#include <Archivable.h>
#include <Entry.h>
#include <StringList.h>
#include <String.h>
#include <package/PackageArchitecture.h>
namespace BPackageKit {
class BRepositoryInfo : public BArchivable {
typedef BArchivable inherited;
public:
BRepositoryInfo();
BRepositoryInfo(BMessage* data);
BRepositoryInfo(const BEntry& entry);
virtual ~BRepositoryInfo();
virtual status_t Archive(BMessage* data, bool deep = true) const;
status_t SetTo(const BMessage* data);
status_t SetTo(const BEntry& entry);
status_t InitCheck() const;
const BString& Name() const;
const BString& BaseURL() const;
const BString& URL() const;
const BString& Vendor() const;
const BString& Summary() const;
uint8 Priority() const;
BPackageArchitecture Architecture() const;
const BStringList& LicenseNames() const;
const BStringList& LicenseTexts() const;
void SetName(const BString& name);
void SetBaseURL(const BString& url);
void SetURL(const BString& url);
void SetVendor(const BString& vendor);
void SetSummary(const BString& summary);
void SetPriority(uint8 priority);
void SetArchitecture(BPackageArchitecture arch);
status_t AddLicense(const BString& licenseName,
const BString& licenseText);
void ClearLicenses();
public:
static BRepositoryInfo* Instantiate(BMessage* data);
static const uint8 kDefaultPriority;
static const char* const kNameField;
static const char* const kURLField;
static const char* const kBaseURLField;
static const char* const kVendorField;
static const char* const kSummaryField;
static const char* const kPriorityField;
static const char* const kArchitectureField;
static const char* const kLicenseNameField;
static const char* const kLicenseTextField;
private:
status_t _SetTo(const BMessage* data);
status_t _SetTo(const BEntry& entry);
private:
status_t fInitStatus;
BString fName;
BString fBaseURL;
// This is the URL to a single mirror. This field is optional.
BString fURL;
// This is an identifier for the repository that applies
// across mirrors.
BString fVendor;
BString fSummary;
uint8 fPriority;
BPackageArchitecture fArchitecture;
BStringList fLicenseNames;
BStringList fLicenseTexts;
};
} // namespace BPackageKit
#endif // _PACKAGE__REPOSITORY_INFO_H_