<!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.7.4 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">Open SCAP Library</div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <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="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#files">Files</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">CPE Language</div> </div> <div class="ingroups"><a class="el" href="group__CPE.html">CPE</a></div></div> <div class="contents"> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="nested-classes"></a> 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__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__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__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><a name="files"></a> Files</h2></td></tr> <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><a name="enum-members"></a> 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">CPE language operators. <a href="group__cpelang.html#gacbb2c8c91d3bb516182bb64c6d8f7d82">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></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 class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#gac3e04f4f99a03c069f03337a6730c57e">cpe_testexpr_iterator::cpe_platform_iterator_reset</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"><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 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#ga93e9e2635cf947b57d02d426b7f72500">cpe_testexpr::cpe_testexpr_clone</a> (struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> *old_expr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clone CPE test expression. <a href="#ga93e9e2635cf947b57d02d426b7f72500"></a><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="ga26308a02ac14cc1c1c19604c2bab2b8e"></a><!-- doxytag: member="cpelang::cpe_testexpr_iterator_reset" ref="ga26308a02ac14cc1c1c19604c2bab2b8e" args="(struct cpe_testexpr_iterator *it)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga26308a02ac14cc1c1c19604c2bab2b8e">cpe_testexpr::cpe_testexpr_iterator_reset</a> (struct <a class="el" href="structcpe__testexpr__iterator.html">cpe_testexpr_iterator</a> *it)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Reset 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 class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga421b4fec7e3e664a1b7a783d57ad63a2"></a><!-- doxytag: member="cpelang::cpe_lang_model_import" ref="ga421b4fec7e3e664a1b7a783d57ad63a2" args="(const char *file)" --> 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#ga421b4fec7e3e664a1b7a783d57ad63a2">cpe_lang_model::cpe_lang_model_import</a> (const char *file)</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#ga37e588d571ed4de824472cfe28284954">cpe_lang_model::cpe_lang_model_export</a> (const struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> *spec, const char *file)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Write the lang_model to a file. <a href="#ga37e588d571ed4de824472cfe28284954"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="member-group"></a> Iterators</h2></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><a name="member-group"></a> Getters</h2></td></tr> <tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpc9fd0bcb5385a65354c37f1bb504399d"></a>Return value is pointer to structure's member.</p> <p>Do not free unless you null the pointer in the structure. Use remove function otherwise. </p> </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="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="gaccd09354281b8303bbf85eeacf218c6a"></a><!-- doxytag: member="cpelang::cpe_lang_model_get_item" ref="gaccd09354281b8303bbf85eeacf218c6a" 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"><a class="el" href="group__cpelang.html#gaccd09354281b8303bbf85eeacf218c6a">cpe_lang_model::cpe_lang_model_get_item</a> (const struct <a class="el" href="structcpe__lang__model.html">cpe_lang_model</a> *item, const char *key)</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="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="ga7947b222d4920ab6cf0888920cd6d6c9"></a><!-- doxytag: member="cpelang::cpe_platform_get_titles" ref="ga7947b222d4920ab6cf0888920cd6d6c9" args="(const struct cpe_platform *item)" --> struct <a class="el" href="structoscap__text__iterator.html">oscap_text_iterator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga7947b222d4920ab6cf0888920cd6d6c9">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><a name="member-group"></a> Setters</h2></td></tr> <tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp6e47466b75bb957a603aa54c079ac8bf"></a>For lists use add functions.</p> <p>Parameters of set functions are duplicated in memory and need to be freed by caller. </p> </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="ga1fd21792bdcff96d02fc83e90b184ce8"></a><!-- doxytag: member="cpelang::cpe_platform_add_title" ref="ga1fd21792bdcff96d02fc83e90b184ce8" args="(struct cpe_platform *platform, struct oscap_text *title)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpelang.html#ga1fd21792bdcff96d02fc83e90b184ce8">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__text.html">oscap_text</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 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><a name="member-group"></a> Evaluators</h2></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_platform::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> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="image"> <img src="cpe_language.png" alt="cpe_language.png"/> <div class="caption"> Class diagram</div></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="ga37e588d571ed4de824472cfe28284954"></a><!-- doxytag: member="cpe_lang_model::cpe_lang_model_export" ref="ga37e588d571ed4de824472cfe28284954" args="(const struct cpe_lang_model *spec, const char *file)" --> <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">const char * </td> <td class="paramname"><em>file</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Write the lang_model to a file. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">spec</td><td>CPE lang model </td></tr> <tr><td class="paramname">target</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></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></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></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]</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> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="gac3e04f4f99a03c069f03337a6730c57e"></a><!-- doxytag: member="cpe_testexpr_iterator::cpe_platform_iterator_reset" ref="gac3e04f4f99a03c069f03337a6730c57e" args="(struct cpe_platform_iterator *it)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void cpe_platform_iterator_reset </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></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="ga087bb45387925a51ae6be052320327c2"></a><!-- doxytag: member="cpe_platform::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> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Function to match cpe in platform. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">cpe</td><td>to be matched with </td></tr> <tr><td class="paramname">n</td><td>size </td></tr> <tr><td class="paramname">platform</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> </tr> <tr> <td></td> <td>)</td> <td></td><td></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> </tr> <tr> <td></td> <td>)</td> <td></td><td></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="ga93e9e2635cf947b57d02d426b7f72500"></a><!-- doxytag: member="cpe_testexpr::cpe_testexpr_clone" ref="ga93e9e2635cf947b57d02d426b7f72500" args="(struct cpe_testexpr *old_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_clone </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structcpe__testexpr.html">cpe_testexpr</a> * </td> <td class="paramname"><em>old_expr</em></td><td>)</td> <td><code> [read]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Clone CPE test expression. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">old_expr</td><td>CPE test expression </td></tr> </table> </dd> </dl> </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]</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]</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]</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 class="params"> <tr><td class="paramname">expr</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></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></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]</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> </tr> <tr> <td></td> <td>)</td> <td></td><td></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> </tr> <tr> <td></td> <td>)</td> <td></td><td></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 class="footer"/><address class="footer"><small>Generated on Mon Jul 25 2011 for Open SCAP Library by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>