00001
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #ifndef _CPEURI_H_
00038 #define _CPEURI_H_
00039
00040 #include <stdbool.h>
00041 #include <stdlib.h>
00042 #include <stdio.h>
00043
00045 typedef enum {
00046 CPE_PART_NONE,
00047 CPE_PART_HW,
00048 CPE_PART_OS,
00049 CPE_PART_APP
00050 } cpe_part_t;
00051
00058 struct cpe_name;
00059
00076 struct cpe_name *cpe_name_new(const char *cpe);
00077
00092 void cpe_name_free(struct cpe_name *cpe);
00093
00107 cpe_part_t cpe_name_get_part(const struct cpe_name *cpe);
00108
00113 const char *cpe_name_get_vendor(const struct cpe_name *cpe);
00114
00119 const char *cpe_name_get_product(const struct cpe_name *cpe);
00120
00125 const char *cpe_name_get_version(const struct cpe_name *cpe);
00126
00131 const char *cpe_name_get_update(const struct cpe_name *cpe);
00132
00137 const char *cpe_name_get_edition(const struct cpe_name *cpe);
00138
00143 const char *cpe_name_get_language(const struct cpe_name *cpe);
00144
00158 bool cpe_name_set_part(struct cpe_name *cpe, cpe_part_t newval);
00159
00164 bool cpe_name_set_vendor(struct cpe_name *cpe, const char *newval);
00165
00170 bool cpe_name_set_product(struct cpe_name *cpe, const char *newval);
00171
00176 bool cpe_name_set_version(struct cpe_name *cpe, const char *newval);
00177
00182 bool cpe_name_set_update(struct cpe_name *cpe, const char *newval);
00183
00188 bool cpe_name_set_edition(struct cpe_name *cpe, const char *newval);
00189
00194 bool cpe_name_set_language(struct cpe_name *cpe, const char *newval);
00195
00208 bool cpe_name_match_one(const struct cpe_name *cpe, const struct cpe_name *against);
00209
00218 bool cpe_name_match_cpes(const struct cpe_name *name, size_t n, struct cpe_name **namelist);
00219
00228 char *cpe_name_get_uri(const struct cpe_name *cpe);
00229
00238 int cpe_name_write(const struct cpe_name *cpe, FILE * f);
00239
00245 bool cpe_name_check(const char *str);
00246
00257 int cpe_name_match_strs(const char *candidate, size_t n, char **targets);
00258
00262
00264 #endif