1 /* 2 * Copyright 2011, Haiku, Inc. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef _PACKAGE__REPOSITORY_INFO_H_ 6 #define _PACKAGE__REPOSITORY_INFO_H_ 7 8 9 #include <Archivable.h> 10 #include <Entry.h> 11 #include <StringList.h> 12 #include <String.h> 13 14 #include <package/PackageArchitecture.h> 15 16 17 namespace BPackageKit { 18 19 20 class BRepositoryInfo : public BArchivable { 21 typedef BArchivable inherited; 22 23 public: 24 BRepositoryInfo(); 25 BRepositoryInfo(BMessage* data); 26 BRepositoryInfo(const BEntry& entry); 27 virtual ~BRepositoryInfo(); 28 29 virtual status_t Archive(BMessage* data, bool deep = true) const; 30 31 status_t SetTo(const BMessage* data); 32 status_t SetTo(const BEntry& entry); 33 status_t InitCheck() const; 34 35 const BString& Name() const; 36 const BString& Vendor() const; 37 const BString& Summary() const; 38 uint8 Priority() const; 39 BPackageArchitecture Architecture() const; 40 const BStringList& LicenseNames() const; 41 const BStringList& LicenseTexts() const; 42 43 void SetName(const BString& name); 44 void SetVendor(const BString& vendor); 45 void SetSummary(const BString& summary); 46 void SetPriority(uint8 priority); 47 void SetArchitecture(BPackageArchitecture arch); 48 49 status_t AddLicense(const BString& licenseName, 50 const BString& licenseText); 51 void ClearLicenses(); 52 53 public: 54 static BRepositoryInfo* Instantiate(BMessage* data); 55 56 static const uint8 kDefaultPriority; 57 58 // XXX: Kill me after everyone upgrades 59 static const char* const kURLField; 60 61 static const char* const kNameField; 62 static const char* const kVendorField; 63 static const char* const kSummaryField; 64 static const char* const kPriorityField; 65 static const char* const kArchitectureField; 66 static const char* const kLicenseNameField; 67 static const char* const kLicenseTextField; 68 69 private: 70 status_t _SetTo(const BMessage* data); 71 status_t _SetTo(const BEntry& entry); 72 73 private: 74 status_t fInitStatus; 75 76 BString fName; 77 BString fVendor; 78 BString fSummary; 79 uint8 fPriority; 80 BPackageArchitecture fArchitecture; 81 BStringList fLicenseNames; 82 BStringList fLicenseTexts; 83 }; 84 85 86 } // namespace BPackageKit 87 88 89 #endif // _PACKAGE__REPOSITORY_INFO_H_ 90