<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>Open SCAP Library: CPE URIs</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> </div> <div class="contents"> <h1>CPE URIs<br/> <small> [<a class="el" href="group__CPE.html">CPE</a>]</small> </h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Data Structures</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structcpe__name.html">cpe_name</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Structure holding Common Platform Enumeration URI data. <a href="structcpe__name.html#_details">More...</a><br/></td></tr> <tr><td colspan="2"><h2>Files</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="cpeuri_8h.html">cpeuri.h</a></td></tr> <p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Interface to Common Platform Enumeration (CPE) URI. </p> <br/></td></tr> </p> <tr><td colspan="2"><h2>Enumerations</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga683b693cae1d4b68f257be24c4cc2ab7">cpe_part_t</a> { <a class="el" href="group__cpeuri.html#gga683b693cae1d4b68f257be24c4cc2ab7a5c781205ea171ce6daacf4202cd8dfcd">CPE_PART_NONE</a>, <a class="el" href="group__cpeuri.html#gga683b693cae1d4b68f257be24c4cc2ab7a56e20d753d7bacb0a52ab1e2f77deef9">CPE_PART_HW</a>, <a class="el" href="group__cpeuri.html#gga683b693cae1d4b68f257be24c4cc2ab7abcc204922bfb1b0b9aeee3e9c5253150">CPE_PART_OS</a>, <a class="el" href="group__cpeuri.html#gga683b693cae1d4b68f257be24c4cc2ab7a6a885dbf3b1805209dd77f9c4747850a">CPE_PART_APP</a> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><p>enumeration of possible CPE parts </p> <a href="group__cpeuri.html#ga683b693cae1d4b68f257be24c4cc2ab7">More...</a><br/></td></tr> <tr><td colspan="2"><h2>New functions</h2></td></tr> <tr><td colspan="2"><p><a class="anchor" id="amgrp73a4128f20867fa23ebb2e75e58922df"></a>Constructors of CVE model structures.</p> <p>Free function returns new empty allocated structure. If returns non NULL it need to be freed by the caller. </p> <br/><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcpe__name.html">cpe_name</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga6177bf1f59c75b3cdace48d52a817257">cpe_name::cpe_name_new</a> (const char *cpe)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new CPE structure from string <em>cpe</em>. <a href="#ga6177bf1f59c75b3cdace48d52a817257"></a><br/></td></tr> <tr><td colspan="2"><h2>Free functions</h2></td></tr> <tr><td colspan="2"><p><a class="anchor" id="amgrp237dd65bc76b7de56066830910ced6ed"></a>Destructors of CVE model structures.</p> <p>Functions free structures with all members recursively. For simple deletion of entity use remove functions. </p> <br/><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga6fcacf25ee259b5b9343da178722ea1b">cpe_name::cpe_name_free</a> (struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#ga6fcacf25ee259b5b9343da178722ea1b"></a><br/></td></tr> <tr><td colspan="2"><h2>Get functions</h2></td></tr> <tr><td colspan="2"><p><a class="anchor" id="amgrpc2ac1eb4de8ec5add5567cbae2f237e5"></a>Functions for getting attributes from CVE model structures.</p> <p>Return value is pointer to structure's member. Do not free unless you null the pointer in the structure. Use remove function otherwise. </p> <br/><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9471548809b90edca59ae2cec770575e"></a><!-- doxytag: member="cpeuri::cpe_name_get_part" ref="ga9471548809b90edca59ae2cec770575e" args="(const struct cpe_name *cpe)" --> <a class="el" href="group__cpeuri.html#ga683b693cae1d4b68f257be24c4cc2ab7">cpe_part_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga9471548809b90edca59ae2cec770575e">cpe_name::cpe_name_get_part</a> (const struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get CPE name part type field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8407fac5886e8440ebe512fe99e3038e"></a><!-- doxytag: member="cpeuri::cpe_name_get_vendor" ref="ga8407fac5886e8440ebe512fe99e3038e" args="(const struct cpe_name *cpe)" --> const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga8407fac5886e8440ebe512fe99e3038e">cpe_name::cpe_name_get_vendor</a> (const struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get CPE name vendor field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacb0ea70e7a1f33e597c7a5c949852e5e"></a><!-- doxytag: member="cpeuri::cpe_name_get_product" ref="gacb0ea70e7a1f33e597c7a5c949852e5e" args="(const struct cpe_name *cpe)" --> const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#gacb0ea70e7a1f33e597c7a5c949852e5e">cpe_name::cpe_name_get_product</a> (const struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get CPE name product field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga441bc68b100261b3a477ba10bea9f319"></a><!-- doxytag: member="cpeuri::cpe_name_get_version" ref="ga441bc68b100261b3a477ba10bea9f319" args="(const struct cpe_name *cpe)" --> const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga441bc68b100261b3a477ba10bea9f319">cpe_name::cpe_name_get_version</a> (const struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get CPE name version field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga13d719e99ec308110024e87aaeb1309e"></a><!-- doxytag: member="cpeuri::cpe_name_get_update" ref="ga13d719e99ec308110024e87aaeb1309e" args="(const struct cpe_name *cpe)" --> const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga13d719e99ec308110024e87aaeb1309e">cpe_name::cpe_name_get_update</a> (const struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get CPE name update field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga636aef898ccd7b5e7314336a4756add9"></a><!-- doxytag: member="cpeuri::cpe_name_get_edition" ref="ga636aef898ccd7b5e7314336a4756add9" args="(const struct cpe_name *cpe)" --> const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga636aef898ccd7b5e7314336a4756add9">cpe_name::cpe_name_get_edition</a> (const struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get CPE name edition field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeb40ced7dc773e5303354ccd6ddeb07b"></a><!-- doxytag: member="cpeuri::cpe_name_get_language" ref="gaeb40ced7dc773e5303354ccd6ddeb07b" args="(const struct cpe_name *cpe)" --> const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#gaeb40ced7dc773e5303354ccd6ddeb07b">cpe_name::cpe_name_get_language</a> (const struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get CPE name language field. <br/></td></tr> <tr><td colspan="2"><h2>Set functions</h2></td></tr> <tr><td colspan="2"><p><a class="anchor" id="amgrp8b7ecf2f4bd25da1aae981677901d55d"></a>Set functions assign values to members of structures except lists.</p> <p>For lists use add functions. Parameters of set functions are duplicated in memory and need to be freed by caller. </p> <br/><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae91ca3e6fb76cacf2f2bbf3227fa3050"></a><!-- doxytag: member="cpeuri::cpe_name_set_part" ref="gae91ca3e6fb76cacf2f2bbf3227fa3050" args="(struct cpe_name *cpe, cpe_part_t newval)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#gae91ca3e6fb76cacf2f2bbf3227fa3050">cpe_name::cpe_name_set_part</a> (struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe, <a class="el" href="group__cpeuri.html#ga683b693cae1d4b68f257be24c4cc2ab7">cpe_part_t</a> newval)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set CPE name part type field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaca661342dca3ba6f24396c3c4d52e995"></a><!-- doxytag: member="cpeuri::cpe_name_set_vendor" ref="gaca661342dca3ba6f24396c3c4d52e995" args="(struct cpe_name *cpe, const char *newval)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#gaca661342dca3ba6f24396c3c4d52e995">cpe_name::cpe_name_set_vendor</a> (struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe, const char *newval)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set CPE name vendor field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9ac1773a3bafd52855835bea7a9fc1d7"></a><!-- doxytag: member="cpeuri::cpe_name_set_product" ref="ga9ac1773a3bafd52855835bea7a9fc1d7" args="(struct cpe_name *cpe, const char *newval)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga9ac1773a3bafd52855835bea7a9fc1d7">cpe_name::cpe_name_set_product</a> (struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe, const char *newval)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set CPE name product field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a65fbe17d81d69cac34c4d848f1be35"></a><!-- doxytag: member="cpeuri::cpe_name_set_version" ref="ga6a65fbe17d81d69cac34c4d848f1be35" args="(struct cpe_name *cpe, const char *newval)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga6a65fbe17d81d69cac34c4d848f1be35">cpe_name::cpe_name_set_version</a> (struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe, const char *newval)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set CPE name version field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1d90b5f12042253d4455efb2d33c4730"></a><!-- doxytag: member="cpeuri::cpe_name_set_update" ref="ga1d90b5f12042253d4455efb2d33c4730" args="(struct cpe_name *cpe, const char *newval)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga1d90b5f12042253d4455efb2d33c4730">cpe_name::cpe_name_set_update</a> (struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe, const char *newval)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set CPE name update field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8fa070ce8bc4d6811ba68388328c5cea"></a><!-- doxytag: member="cpeuri::cpe_name_set_edition" ref="ga8fa070ce8bc4d6811ba68388328c5cea" args="(struct cpe_name *cpe, const char *newval)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga8fa070ce8bc4d6811ba68388328c5cea">cpe_name::cpe_name_set_edition</a> (struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe, const char *newval)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set CPE name edition field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f069900ea6c421e00a38caff4cf768a"></a><!-- doxytag: member="cpeuri::cpe_name_set_language" ref="ga7f069900ea6c421e00a38caff4cf768a" args="(struct cpe_name *cpe, const char *newval)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga7f069900ea6c421e00a38caff4cf768a">cpe_name::cpe_name_set_language</a> (struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe, const char *newval)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set CPE name language field. <br/></td></tr> <tr><td colspan="2"><h2>Other functions</h2></td></tr> <tr><td colspan="2"><p><a class="anchor" id="amgrpb175402ebe89f00c62233c5453c5a243"></a> </p> <br/><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf3b2a0e23c35f22e126a9cd221bd6e70"></a><!-- doxytag: member="cpeuri::cpe_name_match_one" ref="gaf3b2a0e23c35f22e126a9cd221bd6e70" args="(const struct cpe_name *cpe, const struct cpe_name *against)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#gaf3b2a0e23c35f22e126a9cd221bd6e70">cpe_name::cpe_name_match_one</a> (const struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe, const struct <a class="el" href="structcpe__name.html">cpe_name</a> *against)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Check if candidate CPE <em>cpe</em> matches CPE <em>against</em> according to CPE specification v 2.1. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#gada347ce1193dc959312f0fefbdab9fa3">cpe_name::cpe_name_match_cpes</a> (const struct <a class="el" href="structcpe__name.html">cpe_name</a> *name, size_t n, struct <a class="el" href="structcpe__name.html">cpe_name</a> **namelist)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Check if CPE <em>name</em> matches any CPE in <em>namelist</em>. <a href="#gada347ce1193dc959312f0fefbdab9fa3"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga855d92cdf74999859b86ef855b8a3170">cpe_name::cpe_name_get_uri</a> (const struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return CPE URI as a new string. <a href="#ga855d92cdf74999859b86ef855b8a3170"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga5830b374983190bd7a0bdabd93808a03">cpe_name::cpe_name_write</a> (const struct <a class="el" href="structcpe__name.html">cpe_name</a> *cpe, FILE *f)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Write CPE URI <em>cpe</em> to file a descriptor <em>f</em>. <a href="#ga5830b374983190bd7a0bdabd93808a03"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#gafd151f3ad1a0a5df02ad69643f083c19">cpe_name::cpe_name_check</a> (const char *str)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Ensures <em>str</em> is in proper CPE format. <a href="#gafd151f3ad1a0a5df02ad69643f083c19"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#ga12c833bf057353c756b92570e0cfa047">cpe_name::cpe_name_match_strs</a> (const char *candidate, size_t n, char **targets)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Match CPE URI <em>candidate</em> against list of <em>n</em> CPE URIs given by <em>targets</em>. <a href="#ga12c833bf057353c756b92570e0cfa047"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpeuri.html#gaf107a1e1f7eb3aa94d941e003585f6a1">cpe_name::cpe_name_supported</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get supported version of CPE uri XML. <a href="#gaf107a1e1f7eb3aa94d941e003585f6a1"></a><br/></td></tr> </table> <hr/><h2>Enumeration Type Documentation</h2> <a class="anchor" id="ga683b693cae1d4b68f257be24c4cc2ab7"></a><!-- doxytag: member="cpeuri.h::cpe_part_t" ref="ga683b693cae1d4b68f257be24c4cc2ab7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="group__cpeuri.html#ga683b693cae1d4b68f257be24c4cc2ab7">cpe_part_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>enumeration of possible CPE parts </p> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="gga683b693cae1d4b68f257be24c4cc2ab7a5c781205ea171ce6daacf4202cd8dfcd"></a><!-- doxytag: member="CPE_PART_NONE" ref="gga683b693cae1d4b68f257be24c4cc2ab7a5c781205ea171ce6daacf4202cd8dfcd" args="" -->CPE_PART_NONE</em> </td><td> <p>no part specified </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga683b693cae1d4b68f257be24c4cc2ab7a56e20d753d7bacb0a52ab1e2f77deef9"></a><!-- doxytag: member="CPE_PART_HW" ref="gga683b693cae1d4b68f257be24c4cc2ab7a56e20d753d7bacb0a52ab1e2f77deef9" args="" -->CPE_PART_HW</em> </td><td> <p>hardware </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga683b693cae1d4b68f257be24c4cc2ab7abcc204922bfb1b0b9aeee3e9c5253150"></a><!-- doxytag: member="CPE_PART_OS" ref="gga683b693cae1d4b68f257be24c4cc2ab7abcc204922bfb1b0b9aeee3e9c5253150" args="" -->CPE_PART_OS</em> </td><td> <p>operating system </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga683b693cae1d4b68f257be24c4cc2ab7a6a885dbf3b1805209dd77f9c4747850a"></a><!-- doxytag: member="CPE_PART_APP" ref="gga683b693cae1d4b68f257be24c4cc2ab7a6a885dbf3b1805209dd77f9c4747850a" args="" -->CPE_PART_APP</em> </td><td> <p>application </p> </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="gafd151f3ad1a0a5df02ad69643f083c19"></a><!-- doxytag: member="cpe_name::cpe_name_check" ref="gafd151f3ad1a0a5df02ad69643f083c19" args="(const char *str)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool cpe_name_check </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>str</em></td> <td> ) </td> <td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Ensures <em>str</em> is in proper CPE format. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>string to be validated </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga6fcacf25ee259b5b9343da178722ea1b"></a><!-- doxytag: member="cpe_name::cpe_name_free" ref="ga6fcacf25ee259b5b9343da178722ea1b" args="(struct cpe_name *cpe)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void cpe_name_free </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structcpe__name.html">cpe_name</a> * </td> <td class="paramname"> <em>cpe</em></td> <td> ) </td> <td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Destructor. </p> <p>Frees any used resources and safely destroys <em>cpe</em>.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>cpe</em> </td><td>CPE to be deleted </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga855d92cdf74999859b86ef855b8a3170"></a><!-- doxytag: member="cpe_name::cpe_name_get_uri" ref="ga855d92cdf74999859b86ef855b8a3170" args="(const struct cpe_name *cpe)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char * cpe_name_get_uri </td> <td>(</td> <td class="paramtype">const struct <a class="el" href="structcpe__name.html">cpe_name</a> * </td> <td class="paramname"> <em>cpe</em></td> <td> ) </td> <td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Return CPE URI as a new string. </p> <dl class="note"><dt><b>Note:</b></dt><dd>Returned string is newly allocated and is caller's responsibility to free it. </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>cpe</em> </td><td>CPE to be converted </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>CPE URI as string </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>NULL</em> </td><td>on failure </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gada347ce1193dc959312f0fefbdab9fa3"></a><!-- doxytag: member="cpe_name::cpe_name_match_cpes" ref="gada347ce1193dc959312f0fefbdab9fa3" args="(const struct cpe_name *name, size_t n, struct cpe_name **namelist)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool cpe_name_match_cpes </td> <td>(</td> <td class="paramtype">const struct <a class="el" href="structcpe__name.html">cpe_name</a> * </td> <td class="paramname"> <em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>n</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structcpe__name.html">cpe_name</a> ** </td> <td class="paramname"> <em>namelist</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Check if CPE <em>name</em> matches any CPE in <em>namelist</em>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>name to be looked-up </td></tr> <tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>number of items in namelist </td></tr> <tr><td valign="top"></td><td valign="top"><em>namelist</em> </td><td>list of names to search in </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>true if <em>name</em> was found within <em>namelist</em> </dd></dl> </div> </div> <a class="anchor" id="ga12c833bf057353c756b92570e0cfa047"></a><!-- doxytag: member="cpe_name::cpe_name_match_strs" ref="ga12c833bf057353c756b92570e0cfa047" args="(const char *candidate, size_t n, char **targets)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int cpe_name_match_strs </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>candidate</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>n</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"> <em>targets</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Match CPE URI <em>candidate</em> against list of <em>n</em> CPE URIs given by <em>targets</em>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>candidate</em> </td><td>candidarte CPE URI as string </td></tr> <tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>number of items in targets </td></tr> <tr><td valign="top"></td><td valign="top"><em>targets</em> </td><td>list of CPE URIs to be candidate matched against </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>index of first URI in targets, that matched </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>-1</em> </td><td>on mismatch </td></tr> <tr><td valign="top"></td><td valign="top"><em>-2</em> </td><td>invalid CPE URI was given as parameter </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga6177bf1f59c75b3cdace48d52a817257"></a><!-- doxytag: member="cpe_name::cpe_name_new" ref="ga6177bf1f59c75b3cdace48d52a817257" args="(const char *cpe)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structcpe__name.html">cpe_name</a> * cpe_name_new </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>cpe</em></td> <td> ) </td> <td><code> [read, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new CPE structure from string <em>cpe</em>. </p> <dl class="note"><dt><b>Note:</b></dt><dd>If <em>cpe</em> is NULL, empty cpe will be created. </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>cpe</em> </td><td>CPE URI string to be parsed </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>new structure holding parsed data </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>NULL</em> </td><td>on failure </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gaf107a1e1f7eb3aa94d941e003585f6a1"></a><!-- doxytag: member="cpe_name::cpe_name_supported" ref="gaf107a1e1f7eb3aa94d941e003585f6a1" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char * cpe_name_supported </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get supported version of CPE uri XML. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>version of XML file format </dd></dl> </div> </div> <a class="anchor" id="ga5830b374983190bd7a0bdabd93808a03"></a><!-- doxytag: member="cpe_name::cpe_name_write" ref="ga5830b374983190bd7a0bdabd93808a03" args="(const struct cpe_name *cpe, FILE *f)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int cpe_name_write </td> <td>(</td> <td class="paramtype">const struct <a class="el" href="structcpe__name.html">cpe_name</a> * </td> <td class="paramname"> <em>cpe</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">FILE * </td> <td class="paramname"> <em>f</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Write CPE URI <em>cpe</em> to file a descriptor <em>f</em>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>cpe</em> </td><td>cpe to write </td></tr> <tr><td valign="top"></td><td valign="top"><em>f</em> </td><td>file descriptor to write CPE URI to </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>number of written characters </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em><0</em> </td><td>on failure </td></tr> </table> </dd> </dl> </div> </div> </div> <hr size="1"/><address style="text-align: right;"><small>Generated on 26 Feb 2010 for Open SCAP Library by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> </body> </html>