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 struct cpe_name * cpe_name_clone(struct cpe_name * old_name);
00077
00083 void cpe_name_free(struct cpe_name *cpe);
00084
00085
00097 cpe_part_t cpe_name_get_part(const struct cpe_name *cpe);
00098
00103 const char *cpe_name_get_vendor(const struct cpe_name *cpe);
00104
00109 const char *cpe_name_get_product(const struct cpe_name *cpe);
00110
00115 const char *cpe_name_get_version(const struct cpe_name *cpe);
00116
00121 const char *cpe_name_get_update(const struct cpe_name *cpe);
00122
00127 const char *cpe_name_get_edition(const struct cpe_name *cpe);
00128
00133 const char *cpe_name_get_language(const struct cpe_name *cpe);
00134
00143 char *cpe_name_get_uri(const struct cpe_name *cpe);
00144
00145
00148
00160 bool cpe_name_set_part(struct cpe_name *cpe, cpe_part_t newval);
00161
00166 bool cpe_name_set_vendor(struct cpe_name *cpe, const char *newval);
00167
00172 bool cpe_name_set_product(struct cpe_name *cpe, const char *newval);
00173
00178 bool cpe_name_set_version(struct cpe_name *cpe, const char *newval);
00179
00184 bool cpe_name_set_update(struct cpe_name *cpe, const char *newval);
00185
00190 bool cpe_name_set_edition(struct cpe_name *cpe, const char *newval);
00191
00196 bool cpe_name_set_language(struct cpe_name *cpe, const char *newval);
00197
00198
00201
00212 bool cpe_name_match_one(const struct cpe_name *cpe, const struct cpe_name *against);
00213
00222 bool cpe_name_match_cpes(const struct cpe_name *name, size_t n, struct cpe_name **namelist);
00223
00232 int cpe_name_write(const struct cpe_name *cpe, FILE * f);
00233
00239 bool cpe_name_check(const char *str);
00240
00251 int cpe_name_match_strs(const char *candidate, size_t n, char **targets);
00252
00258 const char * cpe_name_supported(void);
00259
00260
00264
00267 #endif