<!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 Language</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 Language<br/> <small> [<a class="el" href="group__CPE.html">CPE</a>]</small> </h1> <p>See more details at <a href="http://nvd.nist.gov/cpe.cfm.">http://nvd.nist.gov/cpe.cfm.</a> <a href="#_details">More...</a></p> <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__testexpr.html">cpe_testexpr</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">CPE language boolean expression. <a href="structcpe__testexpr.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structcpe__lang__model.html">cpe_lang_model</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">CPE platform specification. <a href="structcpe__lang__model.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structcpe__platform.html">cpe_platform</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Single platform representation in CPE language. <a href="structcpe__platform.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structcpe__platform__iterator.html">cpe_platform_iterator</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Iterator over CPE dictionary items. <a href="structcpe__platform__iterator.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structcpe__testexpr__iterator.html">cpe_testexpr_iterator</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Iterator over CPE language expressions. <a href="structcpe__testexpr__iterator.html#_details">More...</a><br/></td></tr> <tr><td colspan="2"><h2>Modules</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__CPELangPrivate.html">Private members</a></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="cpelang__priv_8h.html">cpelang_priv.h</a></td></tr> <p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Interface to Common Platform Enumeration (CPE) Language. </p> <br/></td></tr> </p> <tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="cpelang_8h.html">cpelang.h</a></td></tr> <p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Interface to Common Platform Enumeration (CPE) Language. </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__cpelang.html#gacbb2c8c91d3bb516182bb64c6d8f7d82">cpe_lang_oper_t</a> { <br/> <a class="el" href="group__cpelang.html#ggacbb2c8c91d3bb516182bb64c6d8f7d82aff8e856890304becc49a2d20226384c9">CPE_LANG_OPER_INVALID</a> = 0x00, <a class="el" href="group__cpelang.html#ggacbb2c8c91d3bb516182bb64c6d8f7d82a5f771b20c70ee0e33634122b911a7aac">CPE_LANG_OPER_AND</a> = 0x01, <a class="el" href="group__cpelang.html#ggacbb2c8c91d3bb516182bb64c6d8f7d82a9dd5489d930d04d6abf1764da5e45a5c">CPE_LANG_OPER_OR</a> = 0x02, <a class="el" href="group__cpelang.html#ggacbb2c8c91d3bb516182bb64c6d8f7d82a6780963744226db651cbceb998302a6d">CPE_LANG_OPER_MATCH</a> = 0x04, <br/> <a class="el" href="group__cpelang.html#ggacbb2c8c91d3bb516182bb64c6d8f7d82a40fe8d6616363046111b48e04aaf47fa">CPE_LANG_OPER_MASK</a> = 0xFF, <a class="el" href="group__cpelang.html#ggacbb2c8c91d3bb516182bb64c6d8f7d82a77cd2c7e835b07adc60002de1c041b4f">CPE_LANG_OPER_NOT</a> = 0x100, <b>CPE_LANG_OPER_NAND</b> = CPE_LANG_OPER_AND | CPE_LANG_OPER_NOT, <b>CPE_LANG_OPER_NOR</b> = CPE_LANG_OPER_OR | CPE_LANG_OPER_NOT <br/> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><p>CPE language operators. </p> <a href="group__cpelang.html#gacbb2c8c91d3bb516182bb64c6d8f7d82">More...</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="ga310cec52c2b21a717df860d162840baa"></a><!-- doxytag: member="cpelang::cpe_lang_model_get_item" ref="ga310cec52c2b21a717df860d162840baa" args="(const struct cpe_lang_model *item, const char *key)" --> struct <a class="el" href="structcpe__platform.html">cpe_platform</a> * </td><td class="memItemRight" valign="bottom"><b>cpe_lang_model_get_item</b> (const struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> *item, const char *key)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4016df3687404f37811b7f94c31e26a4"></a><!-- doxytag: member="cpelang::cpe_testexpr_get_oper" ref="ga4016df3687404f37811b7f94c31e26a4" args="(const struct cpe_testexpr *item)" --> <a class="el" href="group__cpelang.html#gacbb2c8c91d3bb516182bb64c6d8f7d82">cpe_lang_oper_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga4016df3687404f37811b7f94c31e26a4">cpe_testexpr::cpe_testexpr_get_oper</a> (const struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structcpe__testexpr.html" title="CPE language boolean expression.">cpe_testexpr</a> functions to get variable members <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcpe__testexpr__iterator.html">cpe_testexpr_iterator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga2b7e68ad301e0c45227c7fc9071be2cd">cpe_testexpr::cpe_testexpr_get_meta_expr</a> (const struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get CPE expression subexpression. <a href="#ga2b7e68ad301e0c45227c7fc9071be2cd"></a><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__cpelang.html#ga8b24fb99f23926f558662d6808bcb534">cpe_testexpr::cpe_testexpr_get_meta_cpe</a> (const struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get CPE name to match against. <a href="#ga8b24fb99f23926f558662d6808bcb534"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gab229fbb8fa2c2c0de0714ce2c9c9bc53">cpe_testexpr::cpe_testexpr_get_next</a> (const struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> *expr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Function to get next expr from array. <a href="#gab229fbb8fa2c2c0de0714ce2c9c9bc53"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8c3446147158e606b9d02ccd33020d8a"></a><!-- doxytag: member="cpelang::cpe_lang_model_get_ns_prefix" ref="ga8c3446147158e606b9d02ccd33020d8a" args="(const struct cpe_lang_model *item)" --> const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga8c3446147158e606b9d02ccd33020d8a">cpe_lang_model::cpe_lang_model_get_ns_prefix</a> (const struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structcpe__lang__model.html" title="CPE platform specification.">cpe_lang_model</a> function to get namespace prefix <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa5e9009c4b979291e110552c8e8a31b1"></a><!-- doxytag: member="cpelang::cpe_lang_model_get_platforms" ref="gaa5e9009c4b979291e110552c8e8a31b1" args="(const struct cpe_lang_model *item)" --> struct <a class="el" href="structcpe__platform__iterator.html">cpe_platform_iterator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gaa5e9009c4b979291e110552c8e8a31b1">cpe_lang_model::cpe_lang_model_get_platforms</a> (const struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structcpe__lang__model.html" title="CPE platform specification.">cpe_lang_model</a> function to get CPE platforms <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga90b91aecc0f9f8255a32b1fe00de1234"></a><!-- doxytag: member="cpelang::cpe_lang_model_get_xmlns" ref="ga90b91aecc0f9f8255a32b1fe00de1234" args="(const struct cpe_lang_model *item)" --> struct <a class="el" href="structxml__metadata__iterator.html">xml_metadata_iterator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga90b91aecc0f9f8255a32b1fe00de1234">cpe_lang_model::cpe_lang_model_get_xmlns</a> (const struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structcpe__lang__model.html" title="CPE platform specification.">cpe_lang_model</a> function to get xmlns attribute <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8b9494431d8599fe802361433231436d"></a><!-- doxytag: member="cpelang::cpe_platform_get_id" ref="ga8b9494431d8599fe802361433231436d" args="(const struct cpe_platform *item)" --> const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga8b9494431d8599fe802361433231436d">cpe_platform::cpe_platform_get_id</a> (const struct <a class="el" href="structcpe__platform.html">cpe_platform</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structcpe__platform.html" title="Single platform representation in CPE language.">cpe_platform</a> functions to get id <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga11161328967d030f8d71608b27415676"></a><!-- doxytag: member="cpelang::cpe_platform_get_remark" ref="ga11161328967d030f8d71608b27415676" args="(const struct cpe_platform *item)" --> const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga11161328967d030f8d71608b27415676">cpe_platform::cpe_platform_get_remark</a> (const struct <a class="el" href="structcpe__platform.html">cpe_platform</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structcpe__platform.html" title="Single platform representation in CPE language.">cpe_platform</a> functions to get remark <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab6a97be125225b1d698e7e6f9c0001f1"></a><!-- doxytag: member="cpelang::cpe_platform_get_titles" ref="gab6a97be125225b1d698e7e6f9c0001f1" args="(const struct cpe_platform *item)" --> struct <a class="el" href="structoscap__title__iterator.html">oscap_title_iterator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gab6a97be125225b1d698e7e6f9c0001f1">cpe_platform::cpe_platform_get_titles</a> (const struct <a class="el" href="structcpe__platform.html">cpe_platform</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structcpe__platform.html" title="Single platform representation in CPE language.">cpe_platform</a> functions to get titles <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga66c92792dad71233eaca532a143aefac"></a><!-- doxytag: member="cpelang::cpe_platform_get_expr" ref="ga66c92792dad71233eaca532a143aefac" args="(const struct cpe_platform *item)" --> struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga66c92792dad71233eaca532a143aefac">cpe_platform::cpe_platform_get_expr</a> (const struct <a class="el" href="structcpe__platform.html">cpe_platform</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structcpe__platform.html" title="Single platform representation in CPE language.">cpe_platform</a> functions to get test expression <br/></td></tr> <tr><td colspan="2"><h2>Iterator functions</h2></td></tr> <tr><td colspan="2"><p><a class="anchor" id="amgrp5668530844eac97b0daa3354806c1edf"></a>Functions to iterate throught lists. </p> <br/><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcpe__platform.html">cpe_platform</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gad18be4cfe7be42e8869a3e0e7202532f">cpe_platform_iterator::cpe_platform_iterator_next</a> (struct <a class="el" href="structcpe__platform__iterator.html">cpe_platform_iterator</a> *it)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gafe87b5c9308ad0cf4f2e55a73b008b91">cpe_platform_iterator::cpe_platform_iterator_has_more</a> (struct <a class="el" href="structcpe__platform__iterator.html">cpe_platform_iterator</a> *it)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gafbcede38295c3ae9cc4c2e568ce3ea26">cpe_platform_iterator::cpe_platform_iterator_free</a> (struct <a class="el" href="structcpe__platform__iterator.html">cpe_platform_iterator</a> *it)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gadba17c675fef806a7a97bb9976bbfa6c">cpe_testexpr_iterator::cpe_testexpr_iterator_next</a> (struct <a class="el" href="structcpe__testexpr__iterator.html">cpe_testexpr_iterator</a> *it)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga43c36e2b99f7362081eb2f7a2130cc6f">cpe_testexpr_iterator::cpe_testexpr_iterator_has_more</a> (struct <a class="el" href="structcpe__testexpr__iterator.html">cpe_testexpr_iterator</a> *it)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga7578274b57a93aebd0f462c779ec20be">cpe_testexpr_iterator::cpe_testexpr_iterator_free</a> (struct <a class="el" href="structcpe__testexpr__iterator.html">cpe_testexpr_iterator</a> *it)</td></tr> <tr><td colspan="2"><h2>Add functions</h2></td></tr> <tr><td colspan="2"><p><a class="anchor" id="amgrpaabced06c8a2e8c15954ce4b1e334884"></a>Get XML namespace from CPE lang model</p> <p>Functions to add member to list. Return value is true if added succesfuly or false in case of error. </p> <br/><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga563eeb9702f9c93df5a25998e9a39600"></a><!-- doxytag: member="cpelang::cpe_lang_model_add_platform" ref="ga563eeb9702f9c93df5a25998e9a39600" args="(struct cpe_lang_model *lang, struct cpe_platform *platform)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga563eeb9702f9c93df5a25998e9a39600">cpe_lang_model::cpe_lang_model_add_platform</a> (struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> *lang, struct <a class="el" href="structcpe__platform.html">cpe_platform</a> *platform)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add platform to CPE lang model. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab31bfb6288d13667166acab4947db1ff"></a><!-- doxytag: member="cpelang::cpe_lang_model_add_xml" ref="gab31bfb6288d13667166acab4947db1ff" args="(struct cpe_lang_model *lang, struct xml_metadata *xml)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gab31bfb6288d13667166acab4947db1ff">cpe_lang_model::cpe_lang_model_add_xml</a> (struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> *lang, struct <a class="el" href="structxml__metadata.html">xml_metadata</a> *xml)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add xml metadata to CPE lang model. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga64da424f8bd783da762bee8b766e247d"></a><!-- doxytag: member="cpelang::cpe_platform_add_title" ref="ga64da424f8bd783da762bee8b766e247d" args="(struct cpe_platform *platform, struct oscap_title *title)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga64da424f8bd783da762bee8b766e247d">cpe_platform::cpe_platform_add_title</a> (struct <a class="el" href="structcpe__platform.html">cpe_platform</a> *platform, struct <a class="el" href="structoscap__title.html">oscap_title</a> *title)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add title to platform. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga0f9cb4770990700bb2828faf397addb3">cpe_testexpr::cpe_testexpr_add_subexpression</a> (struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> *expr, struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> *sub)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add XML namespace to CPE lang model. <a href="#ga0f9cb4770990700bb2828faf397addb3"></a><br/></td></tr> <tr><td colspan="2"><h2>Remove functions</h2></td></tr> <tr><td colspan="2"><p><a class="anchor" id="amgrp40428a142bd2c0b6ea1306c0905502ce"></a>Functions to remove list memebers that the given iterator is pointing to. </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__cpelang.html#gaf7011b78669b32e52036b3923878e831">cpe_platform_iterator::cpe_platform_iterator_remove</a> (struct <a class="el" href="structcpe__platform__iterator.html">cpe_platform_iterator</a> *it, struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> *parent)</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"><a class="anchor" id="gab38c9e5fb94f6cbb806cb02d4d24bf51"></a><!-- doxytag: member="cpelang::cpe_lang_model_new" ref="gab38c9e5fb94f6cbb806cb02d4d24bf51" args="(void)" --> struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gab38c9e5fb94f6cbb806cb02d4d24bf51">cpe_lang_model::cpe_lang_model_new</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor of CPE Language model. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6de4dc9c0d8171bcb666da7bbae44984"></a><!-- doxytag: member="cpelang::cpe_testexpr_new" ref="ga6de4dc9c0d8171bcb666da7bbae44984" args="(void)" --> struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga6de4dc9c0d8171bcb666da7bbae44984">cpe_testexpr::cpe_testexpr_new</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor of CPE test expression. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad83641ba4fb292a923b7ff5753b4070d"></a><!-- doxytag: member="cpelang::cpe_platform_new" ref="gad83641ba4fb292a923b7ff5753b4070d" args="(void)" --> struct <a class="el" href="structcpe__platform.html">cpe_platform</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gad83641ba4fb292a923b7ff5753b4070d">cpe_platform::cpe_platform_new</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor of CPE Platform. <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="ga24d19a5cfb7d414053f8a5e99a4e6b5a"></a><!-- doxytag: member="cpelang::cpe_lang_model_set_ns_prefix" ref="ga24d19a5cfb7d414053f8a5e99a4e6b5a" args="(struct cpe_lang_model *model, const char *new_prefix)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga24d19a5cfb7d414053f8a5e99a4e6b5a">cpe_lang_model::cpe_lang_model_set_ns_prefix</a> (struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> *model, const char *new_prefix)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set ns_prefix to CPE lang model. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad59b55938ebbe388218016cb67fbac50"></a><!-- doxytag: member="cpelang::cpe_platform_set_id" ref="gad59b55938ebbe388218016cb67fbac50" args="(struct cpe_platform *platform, const char *new_id)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gad59b55938ebbe388218016cb67fbac50">cpe_platform::cpe_platform_set_id</a> (struct <a class="el" href="structcpe__platform.html">cpe_platform</a> *platform, const char *new_id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set ID of CPE platform. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga301685568659041bd2a47c958800ddbc"></a><!-- doxytag: member="cpelang::cpe_platform_set_remark" ref="ga301685568659041bd2a47c958800ddbc" args="(struct cpe_platform *platform, const char *new_remark)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga301685568659041bd2a47c958800ddbc">cpe_platform::cpe_platform_set_remark</a> (struct <a class="el" href="structcpe__platform.html">cpe_platform</a> *platform, const char *new_remark)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set remark of CPE platform. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gaa9bc76ff30e7f9faa4def792404c1a62">cpe_platform::cpe_platform_set_expr</a> (struct <a class="el" href="structcpe__platform.html">cpe_platform</a> *platform, struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> *expr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set evaluation expression for this CPE platform. <a href="#gaa9bc76ff30e7f9faa4def792404c1a62"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gaf5cbbabfe39b2bbd5eebd180d0b3eb68">cpe_testexpr::cpe_testexpr_set_oper</a> (struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> *expr, <a class="el" href="group__cpelang.html#gacbb2c8c91d3bb516182bb64c6d8f7d82">cpe_lang_oper_t</a> oper)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set CPE operation. <a href="#gaf5cbbabfe39b2bbd5eebd180d0b3eb68"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gaa95723258aff68c121c25c825852d5c3">cpe_testexpr::cpe_testexpr_set_name</a> (struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> *expr, struct <a class="el" href="structcpe__name.html">cpe_name</a> *name)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set CPE name. <a href="#gaa95723258aff68c121c25c825852d5c3"></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"><a class="anchor" id="gac6135bb7df1b4c083e97dcb67f7bfccd"></a><!-- doxytag: member="cpelang::cpe_testexpr_free" ref="gac6135bb7df1b4c083e97dcb67f7bfccd" args="(struct cpe_testexpr *expr)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gac6135bb7df1b4c083e97dcb67f7bfccd">cpe_testexpr::cpe_testexpr_free</a> (struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> *expr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free function of CPE test expression. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a4e8a7210b76078bb6ac8bc9f3be0a7"></a><!-- doxytag: member="cpelang::cpe_lang_model_free" ref="ga6a4e8a7210b76078bb6ac8bc9f3be0a7" args="(struct cpe_lang_model *platformspec)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga6a4e8a7210b76078bb6ac8bc9f3be0a7">cpe_lang_model::cpe_lang_model_free</a> (struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> *platformspec)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free function of CPE test expression. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1bcb12e96db31e6b57be749fd5ba3b3e"></a><!-- doxytag: member="cpelang::cpe_platform_free" ref="ga1bcb12e96db31e6b57be749fd5ba3b3e" args="(struct cpe_platform *platform)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga1bcb12e96db31e6b57be749fd5ba3b3e">cpe_platform::cpe_platform_free</a> (struct <a class="el" href="structcpe__platform.html">cpe_platform</a> *platform)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free function of CPE Platform. <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">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gabf469c1ab5798bb321e6c89ffb4b6e9d">cpe_lang_model::cpe_lang_model_supported</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get supported version of CPE language XML. <a href="#gabf469c1ab5798bb321e6c89ffb4b6e9d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga087bb45387925a51ae6be052320327c2">cpe_lang_model::cpe_platform_match_cpe</a> (struct <a class="el" href="structcpe__name.html">cpe_name</a> **cpe, size_t n, const struct <a class="el" href="structcpe__platform.html">cpe_platform</a> *platform)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Function to match cpe in platform. <a href="#ga087bb45387925a51ae6be052320327c2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga092a153b42c0b5565a2c22eebf79874d"></a><!-- doxytag: member="cpelang::cpe_lang_model_import" ref="ga092a153b42c0b5565a2c22eebf79874d" args="(const struct oscap_import_source *source)" --> struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga092a153b42c0b5565a2c22eebf79874d">cpe_lang_model::cpe_lang_model_import</a> (const struct <a class="el" href="structoscap__import__source.html">oscap_import_source</a> *source)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Load CPE language model from a XML document. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gade703f4a7cf45cefa351f975a5fed5da">cpe_lang_model::cpe_lang_model_export</a> (const struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> *spec, struct <a class="el" href="structoscap__export__target.html">oscap_export_target</a> *target)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Write the lang_model to a file. <a href="#gade703f4a7cf45cefa351f975a5fed5da"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>See more details at <a href="http://nvd.nist.gov/cpe.cfm.">http://nvd.nist.gov/cpe.cfm.</a> </p> <p>Class diagram </p> <div align="center"> <img src="cpe_language.png" alt="cpe_language.png"/> </div> <hr/><h2>Enumeration Type Documentation</h2> <a class="anchor" id="gacbb2c8c91d3bb516182bb64c6d8f7d82"></a><!-- doxytag: member="cpelang.h::cpe_lang_oper_t" ref="gacbb2c8c91d3bb516182bb64c6d8f7d82" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="group__cpelang.html#gacbb2c8c91d3bb516182bb64c6d8f7d82">cpe_lang_oper_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>CPE language operators. </p> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="ggacbb2c8c91d3bb516182bb64c6d8f7d82aff8e856890304becc49a2d20226384c9"></a><!-- doxytag: member="CPE_LANG_OPER_INVALID" ref="ggacbb2c8c91d3bb516182bb64c6d8f7d82aff8e856890304becc49a2d20226384c9" args="" -->CPE_LANG_OPER_INVALID</em> </td><td> <p>invalid or unknown operation </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ggacbb2c8c91d3bb516182bb64c6d8f7d82a5f771b20c70ee0e33634122b911a7aac"></a><!-- doxytag: member="CPE_LANG_OPER_AND" ref="ggacbb2c8c91d3bb516182bb64c6d8f7d82a5f771b20c70ee0e33634122b911a7aac" args="" -->CPE_LANG_OPER_AND</em> </td><td> <p>logical AND </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ggacbb2c8c91d3bb516182bb64c6d8f7d82a9dd5489d930d04d6abf1764da5e45a5c"></a><!-- doxytag: member="CPE_LANG_OPER_OR" ref="ggacbb2c8c91d3bb516182bb64c6d8f7d82a9dd5489d930d04d6abf1764da5e45a5c" args="" -->CPE_LANG_OPER_OR</em> </td><td> <p>logical OR </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ggacbb2c8c91d3bb516182bb64c6d8f7d82a6780963744226db651cbceb998302a6d"></a><!-- doxytag: member="CPE_LANG_OPER_MATCH" ref="ggacbb2c8c91d3bb516182bb64c6d8f7d82a6780963744226db651cbceb998302a6d" args="" -->CPE_LANG_OPER_MATCH</em> </td><td> <p>match against specified CPE </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ggacbb2c8c91d3bb516182bb64c6d8f7d82a40fe8d6616363046111b48e04aaf47fa"></a><!-- doxytag: member="CPE_LANG_OPER_MASK" ref="ggacbb2c8c91d3bb516182bb64c6d8f7d82a40fe8d6616363046111b48e04aaf47fa" args="" -->CPE_LANG_OPER_MASK</em> </td><td> <p>mask to extract the operator w/o possible negation </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ggacbb2c8c91d3bb516182bb64c6d8f7d82a77cd2c7e835b07adc60002de1c041b4f"></a><!-- doxytag: member="CPE_LANG_OPER_NOT" ref="ggacbb2c8c91d3bb516182bb64c6d8f7d82a77cd2c7e835b07adc60002de1c041b4f" args="" -->CPE_LANG_OPER_NOT</em> </td><td> <p>negate </p> </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="gade703f4a7cf45cefa351f975a5fed5da"></a><!-- doxytag: member="cpe_lang_model::cpe_lang_model_export" ref="gade703f4a7cf45cefa351f975a5fed5da" args="(const struct cpe_lang_model *spec, struct oscap_export_target *target)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void cpe_lang_model_export </td> <td>(</td> <td class="paramtype">const struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> * </td> <td class="paramname"> <em>spec</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structoscap__export__target.html">oscap_export_target</a> * </td> <td class="paramname"> <em>target</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 the lang_model to a file. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>spec</em> </td><td>CPE lang model </td></tr> <tr><td valign="top"></td><td valign="top"><em>target</em> </td><td>target structure with filename, endcoding and indent information </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gabf469c1ab5798bb321e6c89ffb4b6e9d"></a><!-- doxytag: member="cpe_lang_model::cpe_lang_model_supported" ref="gabf469c1ab5798bb321e6c89ffb4b6e9d" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char * cpe_lang_model_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 language XML. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>version of XML file format </dd></dl> </div> </div> <a class="anchor" id="gafbcede38295c3ae9cc4c2e568ce3ea26"></a><!-- doxytag: member="cpe_platform_iterator::cpe_platform_iterator_free" ref="gafbcede38295c3ae9cc4c2e568ce3ea26" args="(struct cpe_platform_iterator *it)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void cpe_platform_iterator_free </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structcpe__platform__iterator.html">cpe_platform_iterator</a> * </td> <td class="paramname"> <em>it</em></td> <td> ) </td> <td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="gafe87b5c9308ad0cf4f2e55a73b008b91"></a><!-- doxytag: member="cpe_platform_iterator::cpe_platform_iterator_has_more" ref="gafe87b5c9308ad0cf4f2e55a73b008b91" args="(struct cpe_platform_iterator *it)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool cpe_platform_iterator_has_more </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structcpe__platform__iterator.html">cpe_platform_iterator</a> * </td> <td class="paramname"> <em>it</em></td> <td> ) </td> <td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="gad18be4cfe7be42e8869a3e0e7202532f"></a><!-- doxytag: member="cpe_platform_iterator::cpe_platform_iterator_next" ref="gad18be4cfe7be42e8869a3e0e7202532f" args="(struct cpe_platform_iterator *it)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structcpe__platform.html">cpe_platform</a> * cpe_platform_iterator_next </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structcpe__platform__iterator.html">cpe_platform_iterator</a> * </td> <td class="paramname"> <em>it</em></td> <td> ) </td> <td><code> [read, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="gaf7011b78669b32e52036b3923878e831"></a><!-- doxytag: member="cpe_platform_iterator::cpe_platform_iterator_remove" ref="gaf7011b78669b32e52036b3923878e831" args="(struct cpe_platform_iterator *it, struct cpe_lang_model *parent)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void cpe_platform_iterator_remove </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structcpe__platform__iterator.html">cpe_platform_iterator</a> * </td> <td class="paramname"> <em>it</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> * </td> <td class="paramname"> <em>parent</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"> </div> </div> <a class="anchor" id="ga087bb45387925a51ae6be052320327c2"></a><!-- doxytag: member="cpe_lang_model::cpe_platform_match_cpe" ref="ga087bb45387925a51ae6be052320327c2" args="(struct cpe_name **cpe, size_t n, const struct cpe_platform *platform)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool cpe_platform_match_cpe </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> </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">const struct <a class="el" href="structcpe__platform.html">cpe_platform</a> * </td> <td class="paramname"> <em>platform</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [related, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Function to match cpe in platform. </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>to be matched with </td></tr> <tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>size </td></tr> <tr><td valign="top"></td><td valign="top"><em>platform</em> </td><td>CPE platform </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gaa9bc76ff30e7f9faa4def792404c1a62"></a><!-- doxytag: member="cpe_platform::cpe_platform_set_expr" ref="gaa9bc76ff30e7f9faa4def792404c1a62" args="(struct cpe_platform *platform, struct cpe_testexpr *expr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool cpe_platform_set_expr </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structcpe__platform.html">cpe_platform</a> * </td> <td class="paramname"> <em>platform</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * </td> <td class="paramname"> <em>expr</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>Set evaluation expression for this CPE platform. </p> <p>Expression has to be a logical-test (i.e. its operation shall be AND or OR, possibly with negation) </p> </div> </div> <a class="anchor" id="ga0f9cb4770990700bb2828faf397addb3"></a><!-- doxytag: member="cpe_testexpr::cpe_testexpr_add_subexpression" ref="ga0f9cb4770990700bb2828faf397addb3" args="(struct cpe_testexpr *expr, struct cpe_testexpr *sub)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool cpe_testexpr_add_subexpression </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * </td> <td class="paramname"> <em>expr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * </td> <td class="paramname"> <em>sub</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>Add XML namespace to CPE lang model. </p> <p>Add an subexpression to a compound CPE language expression.</p> <p>Expression has to be of type CPE_LANG_OPER_AND or CPE_LANG_OPER_OR, possibly with negation. </p> </div> </div> <a class="anchor" id="ga8b24fb99f23926f558662d6808bcb534"></a><!-- doxytag: member="cpe_testexpr::cpe_testexpr_get_meta_cpe" ref="ga8b24fb99f23926f558662d6808bcb534" args="(const struct cpe_testexpr *item)" --> <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_testexpr_get_meta_cpe </td> <td>(</td> <td class="paramtype">const struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * </td> <td class="paramname"> <em>item</em></td> <td> ) </td> <td><code> [read, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get CPE name to match against. </p> <p>Only valid for CPE_LANG_OPER_MATCH. </p> </div> </div> <a class="anchor" id="ga2b7e68ad301e0c45227c7fc9071be2cd"></a><!-- doxytag: member="cpe_testexpr::cpe_testexpr_get_meta_expr" ref="ga2b7e68ad301e0c45227c7fc9071be2cd" args="(const struct cpe_testexpr *item)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structcpe__testexpr__iterator.html">cpe_testexpr_iterator</a> * cpe_testexpr_get_meta_expr </td> <td>(</td> <td class="paramtype">const struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * </td> <td class="paramname"> <em>item</em></td> <td> ) </td> <td><code> [read, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get CPE expression subexpression. </p> <p>Not valid for CPE_LANG_OPER_MATCH operation. </p> </div> </div> <a class="anchor" id="gab229fbb8fa2c2c0de0714ce2c9c9bc53"></a><!-- doxytag: member="cpe_testexpr::cpe_testexpr_get_next" ref="gab229fbb8fa2c2c0de0714ce2c9c9bc53" args="(const struct cpe_testexpr *expr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * cpe_testexpr_get_next </td> <td>(</td> <td class="paramtype">const struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * </td> <td class="paramname"> <em>expr</em></td> <td> ) </td> <td><code> [read, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Function to get next expr from array. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>expr</em> </td><td>CPE Test expression structure </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga7578274b57a93aebd0f462c779ec20be"></a><!-- doxytag: member="cpe_testexpr_iterator::cpe_testexpr_iterator_free" ref="ga7578274b57a93aebd0f462c779ec20be" args="(struct cpe_testexpr_iterator *it)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void cpe_testexpr_iterator_free </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structcpe__testexpr__iterator.html">cpe_testexpr_iterator</a> * </td> <td class="paramname"> <em>it</em></td> <td> ) </td> <td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="ga43c36e2b99f7362081eb2f7a2130cc6f"></a><!-- doxytag: member="cpe_testexpr_iterator::cpe_testexpr_iterator_has_more" ref="ga43c36e2b99f7362081eb2f7a2130cc6f" args="(struct cpe_testexpr_iterator *it)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool cpe_testexpr_iterator_has_more </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structcpe__testexpr__iterator.html">cpe_testexpr_iterator</a> * </td> <td class="paramname"> <em>it</em></td> <td> ) </td> <td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="gadba17c675fef806a7a97bb9976bbfa6c"></a><!-- doxytag: member="cpe_testexpr_iterator::cpe_testexpr_iterator_next" ref="gadba17c675fef806a7a97bb9976bbfa6c" args="(struct cpe_testexpr_iterator *it)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * cpe_testexpr_iterator_next </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structcpe__testexpr__iterator.html">cpe_testexpr_iterator</a> * </td> <td class="paramname"> <em>it</em></td> <td> ) </td> <td><code> [read, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="gaa95723258aff68c121c25c825852d5c3"></a><!-- doxytag: member="cpe_testexpr::cpe_testexpr_set_name" ref="gaa95723258aff68c121c25c825852d5c3" args="(struct cpe_testexpr *expr, struct cpe_name *name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool cpe_testexpr_set_name </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * </td> <td class="paramname"> <em>expr</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>name</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>Set CPE name. </p> <p>If the expression does not have type CPE_LANG_OPER_MATCH, this function has no effect and returns false. </p> </div> </div> <a class="anchor" id="gaf5cbbabfe39b2bbd5eebd180d0b3eb68"></a><!-- doxytag: member="cpe_testexpr::cpe_testexpr_set_oper" ref="gaf5cbbabfe39b2bbd5eebd180d0b3eb68" args="(struct cpe_testexpr *expr, cpe_lang_oper_t oper)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool cpe_testexpr_set_oper </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * </td> <td class="paramname"> <em>expr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__cpelang.html#gacbb2c8c91d3bb516182bb64c6d8f7d82">cpe_lang_oper_t</a> </td> <td class="paramname"> <em>oper</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>Set CPE operation. </p> <p>Any subexpressions and CPE names associated with this expression will be removed. </p> </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>