Go to the documentation of this file.00001 #ifndef EPT_APT_PACKAGERECORD_H
00002 #define EPT_APT_PACKAGERECORD_H
00003
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <ept/apt/recordparser.h>
00027 #include <set>
00028
00029 namespace ept {
00030 namespace apt {
00031
00036 class PackageRecord : public RecordParser
00037 {
00038 bool parseBool(bool& def, const std::string& str) const
00039 {
00040
00041 if (str == "no" || str == "false" || str == "without" ||
00042 str == "off" || str == "disable")
00043 return false;
00044
00045 if (str == "yes" || str == "true" || str == "with" ||
00046 str == "on" || str == "enable")
00047 return true;
00048
00049 return def;
00050 }
00051 std::string parseString(const std::string& def, const std::string& str) const
00052 {
00053 if (str == std::string())
00054 return def;
00055 return str;
00056 }
00057 std::string parseShortDescription(const std::string& def, const std::string& str) const;
00058 std::string parseLongDescription(const std::string& def, const std::string& str) const;
00059 size_t parseSize(size_t def, const std::string& str) const;
00060 std::set<std::string> parseTags(const std::set<std::string>& def, const std::string& str) const;
00061
00062 public:
00063 PackageRecord() : RecordParser() {}
00064 PackageRecord(const std::string& str) : RecordParser(str) {}
00065
00066 std::string package(const std::string& def = std::string()) const
00067 {
00068 return parseString(def, lookup("Package"));
00069 }
00070 std::string priority(const std::string& def = std::string()) const
00071 {
00072 return parseString(def, lookup("Priority"));
00073 }
00074 std::string section(const std::string& def = std::string()) const
00075 {
00076 return parseString(def, lookup("Section"));
00077 }
00078 size_t installedSize(size_t def = 0) const
00079 {
00080 return parseSize(def, lookup("Installed-Size"));
00081 }
00082 std::string maintainer(const std::string& def = std::string()) const
00083 {
00084 return parseString(def, lookup("Maintainer"));
00085 }
00086 std::string architecture(const std::string& def = std::string()) const
00087 {
00088 return parseString(def, lookup("Architecture"));
00089 }
00090 std::string source(const std::string& def = std::string()) const
00091 {
00092 return parseString(def, lookup("Source"));
00093 }
00094 std::string version(const std::string& def = std::string()) const
00095 {
00096 return parseString(def, lookup("Version"));
00097 }
00098 std::string replaces(const std::string& def = std::string()) const
00099 {
00100 return parseString(def, lookup("Replaces"));
00101 }
00102 std::string depends(const std::string& def = std::string()) const
00103 {
00104 return parseString(def, lookup("Depends"));
00105 }
00106 std::string preDepends(const std::string& def = std::string()) const
00107 {
00108 return parseString(def, lookup("Pre-Depends"));
00109 }
00110 std::string recommends(const std::string& def = std::string()) const
00111 {
00112 return parseString(def, lookup("Recommends"));
00113 }
00114 std::string suggests(const std::string& def = std::string()) const
00115 {
00116 return parseString(def, lookup("Suggests"));
00117 }
00118 std::string enhances(const std::string& def = std::string()) const
00119 {
00120 return parseString(def, lookup("Enhances"));
00121 }
00122 std::string provides(const std::string& def = std::string()) const
00123 {
00124 return parseString(def, lookup("Provides"));
00125 }
00126 std::string conflicts(const std::string& def = std::string()) const
00127 {
00128 return parseString(def, lookup("Conflicts"));
00129 }
00130 std::string filename(const std::string& def = std::string()) const
00131 {
00132 return parseString(def, lookup("Filename"));
00133 }
00134 size_t packageSize(size_t def = 0) const
00135 {
00136 return parseSize(def, lookup("Size"));
00137 }
00138 std::string md5sum(const std::string& def = std::string()) const
00139 {
00140 return parseString(def, lookup("MD5sum"));
00141 }
00142 std::string sha1(const std::string& def = std::string()) const
00143 {
00144 return parseString(def, lookup("SHA1"));
00145 }
00146 std::string sha256(const std::string& def = std::string()) const
00147 {
00148 return parseString(def, lookup("SHA256"));
00149 }
00150 std::string description(const std::string& def = std::string()) const
00151 {
00152 return parseString(def, lookup("Description"));
00153 }
00154 std::string shortDescription(const std::string& def = std::string()) const
00155 {
00156 return parseShortDescription(def, lookup("Description"));
00157 }
00158 std::string longDescription(const std::string& def = std::string()) const
00159 {
00160 return parseLongDescription(def, lookup("Description"));
00161 }
00162 bool buildEssential(bool def = false) const
00163 {
00164 return parseBool(def, lookup("Build-Essential"));
00165 }
00166 std::set<std::string> tag(const std::set<std::string>& def = std::set<std::string>()) const
00167 {
00168 return parseTags(def, lookup("Tag"));
00169 }
00170 };
00171
00172 }
00173 }
00174
00175
00176 #endif