Open SCAP Library
/home/pvrabec/project/openscap/openscap-0.7.3/src/CPE/public/cpeuri.h
Go to the documentation of this file.
00001 
00015 /*
00016  * Copyright 2009 Red Hat Inc., Durham, North Carolina.
00017  * All Rights Reserved.
00018  *
00019  * This library is free software; you can redistribute it and/or
00020  * modify it under the terms of the GNU Lesser General Public
00021  * License as published by the Free Software Foundation; either
00022  * version 2.1 of the License, or (at your option) any later version.
00023  *
00024  * This library is distributed in the hope that it will be useful, 
00025  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00026  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00027  * Lesser General Public License for more details.
00028  *
00029  * You should have received a copy of the GNU Lesser General Public
00030  * License along with this library; if not, write to the Free Software 
00031  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00032  *
00033  * Authors:
00034  *      Lukas Kuklinek <lkuklinek@redhat.com>
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                          /* _CPEURI_H_ */