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
00069 struct cpe_name *cpe_name_new(const char *cpe);
00070
00076 void cpe_name_free(struct cpe_name *cpe);
00077
00078
00090 cpe_part_t cpe_name_get_part(const struct cpe_name *cpe);
00091
00096 const char *cpe_name_get_vendor(const struct cpe_name *cpe);
00097
00102 const char *cpe_name_get_product(const struct cpe_name *cpe);
00103
00108 const char *cpe_name_get_version(const struct cpe_name *cpe);
00109
00114 const char *cpe_name_get_update(const struct cpe_name *cpe);
00115
00120 const char *cpe_name_get_edition(const struct cpe_name *cpe);
00121
00126 const char *cpe_name_get_language(const struct cpe_name *cpe);
00127
00136 char *cpe_name_get_uri(const struct cpe_name *cpe);
00137
00138
00141
00153 bool cpe_name_set_part(struct cpe_name *cpe, cpe_part_t newval);
00154
00159 bool cpe_name_set_vendor(struct cpe_name *cpe, const char *newval);
00160
00165 bool cpe_name_set_product(struct cpe_name *cpe, const char *newval);
00166
00171 bool cpe_name_set_version(struct cpe_name *cpe, const char *newval);
00172
00177 bool cpe_name_set_update(struct cpe_name *cpe, const char *newval);
00178
00183 bool cpe_name_set_edition(struct cpe_name *cpe, const char *newval);
00184
00189 bool cpe_name_set_language(struct cpe_name *cpe, const char *newval);
00190
00191
00194
00205 bool cpe_name_match_one(const struct cpe_name *cpe, const struct cpe_name *against);
00206
00215 bool cpe_name_match_cpes(const struct cpe_name *name, size_t n, struct cpe_name **namelist);
00216
00225 int cpe_name_write(const struct cpe_name *cpe, FILE * f);
00226
00232 bool cpe_name_check(const char *str);
00233
00244 int cpe_name_match_strs(const char *candidate, size_t n, char **targets);
00245
00251 const char * cpe_name_supported(void);
00252
00253
00257
00260 #endif