Open SCAP Library
cpe_name.h
Go to the documentation of this file.
1 
15 /*
16  * Copyright 2009 Red Hat Inc., Durham, North Carolina.
17  * All Rights Reserved.
18  *
19  * This library is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU Lesser General Public
21  * License as published by the Free Software Foundation; either
22  * version 2.1 of the License, or (at your option) any later version.
23  *
24  * This library is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27  * Lesser General Public License for more details.
28  *
29  * You should have received a copy of the GNU Lesser General Public
30  * License along with this library; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
32  *
33  * Authors:
34  * Lukas Kuklinek <lkuklinek@redhat.com>
35  */
36 
37 #ifndef _CPEURI_H_
38 #define _CPEURI_H_
39 
40 #include <stdbool.h>
41 #include <stdlib.h>
42 #include <stdio.h>
43 
45 typedef enum {
50 } cpe_part_t;
51 
52 typedef enum {
57 } cpe_format_t;
58 
65 struct cpe_name;
66 
76 struct cpe_name *cpe_name_new(const char *cpe);
77 
83 struct cpe_name * cpe_name_clone(struct cpe_name * old_name);
84 
90 void cpe_name_free(struct cpe_name *cpe);
91 
92 /************************************************************/
104 cpe_format_t cpe_name_get_format(const struct cpe_name *cpe);
105 
110 cpe_part_t cpe_name_get_part(const struct cpe_name *cpe);
111 
116 const char *cpe_name_get_vendor(const struct cpe_name *cpe);
117 
122 const char *cpe_name_get_product(const struct cpe_name *cpe);
123 
128 const char *cpe_name_get_version(const struct cpe_name *cpe);
129 
134 const char *cpe_name_get_update(const struct cpe_name *cpe);
135 
140 const char *cpe_name_get_edition(const struct cpe_name *cpe);
141 
146 const char *cpe_name_get_language(const struct cpe_name *cpe);
147 
152 const char *cpe_name_get_sw_edition(const struct cpe_name *cpe);
153 
158 const char *cpe_name_get_target_sw(const struct cpe_name *cpe);
159 
164 const char *cpe_name_get_target_hw(const struct cpe_name *cpe);
165 
170 const char *cpe_name_get_other(const struct cpe_name *cpe);
171 
181 char *cpe_name_get_as_format(const struct cpe_name *cpe, cpe_format_t format);
182 
191 char *cpe_name_get_as_str(const struct cpe_name *cpe);
192 
193 /************************************************************/
196 /************************************************************/
208 bool cpe_name_set_format(struct cpe_name *cpe, cpe_format_t newval);
209 
214 bool cpe_name_set_part(struct cpe_name *cpe, cpe_part_t newval);
215 
220 bool cpe_name_set_vendor(struct cpe_name *cpe, const char *newval);
221 
226 bool cpe_name_set_product(struct cpe_name *cpe, const char *newval);
227 
232 bool cpe_name_set_version(struct cpe_name *cpe, const char *newval);
233 
238 bool cpe_name_set_update(struct cpe_name *cpe, const char *newval);
239 
244 bool cpe_name_set_edition(struct cpe_name *cpe, const char *newval);
245 
250 bool cpe_name_set_language(struct cpe_name *cpe, const char *newval);
251 
256 bool cpe_name_set_sw_edition(struct cpe_name *cpe, const char *newval);
257 
262 bool cpe_name_set_target_sw(struct cpe_name *cpe, const char *newval);
263 
268 bool cpe_name_set_target_hw(struct cpe_name *cpe, const char *newval);
269 
274 bool cpe_name_set_other(struct cpe_name *cpe, const char *newval);
275 
276 /************************************************************/
279 /************************************************************/
290 bool cpe_name_match_one(const struct cpe_name *cpe, const struct cpe_name *against);
291 
300 bool cpe_name_match_cpes(const struct cpe_name *name, size_t n, struct cpe_name **namelist);
301 
310 int cpe_name_write(const struct cpe_name *cpe, FILE * f);
311 
318 
324 bool cpe_name_check(const char *str);
325 
336 int cpe_name_match_strs(const char *candidate, size_t n, char **targets);
337 
343 const char * cpe_name_supported(void);
344 
345 /************************************************************/
362 typedef bool *(*cpe_check_fn) (const char*, const char*, const char*, void*);
363 
371 typedef bool *(*cpe_dict_fn) (const struct cpe_name*, void*);
372 
373 #endif /* _CPEURI_H_ */