CPE Language
[CPE]

Data Structures

struct  cpe_lang_model
 CPE platform specification. More...
struct  cpe_platform
 Single platform representation in CPE language. More...
struct  cpe_testexpr
 CPE language boolean expression. More...
struct  cpe_platform_iterator
 Iterator over CPE dictionary items. More...
struct  cpe_testexpr_iterator
 Iterator over CPE language expressions. More...

Files

file  cpelang.h
 

Interface to Common Platform Enumeration (CPE) Language.


Enumerations

enum  cpe_lang_oper_t {
  CPE_LANG_OPER_INVALID = 0x00, CPE_LANG_OPER_AND = 0x01, CPE_LANG_OPER_OR = 0x02, CPE_LANG_OPER_MATCH = 0x04,
  CPE_LANG_OPER_MASK = 0xFF, CPE_LANG_OPER_NOT = 0x100, CPE_LANG_OPER_NAND = CPE_LANG_OPER_AND | CPE_LANG_OPER_NOT, CPE_LANG_OPER_NOR = CPE_LANG_OPER_OR | CPE_LANG_OPER_NOT
}
 

CPE language operators.

More...

Functions

void cpe_platform_iterator::cpe_platform_iterator_remove (struct cpe_platform_iterator *it, struct cpe_lang_model *parent)
void cpe_testexpr_iterator::cpe_platform_iterator_reset (struct cpe_platform_iterator *it)
struct cpe_lang_modelcpe_lang_model::cpe_lang_model_new (void)
 Constructor of CPE Language model.
struct cpe_testexprcpe_testexpr::cpe_testexpr_new (void)
 Constructor of CPE test expression.
struct cpe_platformcpe_platform::cpe_platform_new (void)
 Constructor of CPE Platform.
struct cpe_testexprcpe_testexpr::cpe_testexpr_clone (struct cpe_testexpr *old_expr)
 Clone CPE test expression.
void cpe_testexpr::cpe_testexpr_free (struct cpe_testexpr *expr)
 Free function of CPE test expression.
void cpe_testexpr::cpe_testexpr_iterator_reset (struct cpe_testexpr_iterator *it)
 Reset function of CPE test expression.
void cpe_lang_model::cpe_lang_model_free (struct cpe_lang_model *platformspec)
 Free function of CPE test expression.
void cpe_platform::cpe_platform_free (struct cpe_platform *platform)
 Free function of CPE Platform.
struct cpe_lang_modelcpe_lang_model::cpe_lang_model_import (const char *file)
 Load CPE language model from a XML document.
void cpe_lang_model::cpe_lang_model_export (const struct cpe_lang_model *spec, const char *file)
 Write the lang_model to a file.

Iterators



struct cpe_platformcpe_platform_iterator::cpe_platform_iterator_next (struct cpe_platform_iterator *it)
bool cpe_platform_iterator::cpe_platform_iterator_has_more (struct cpe_platform_iterator *it)
void cpe_platform_iterator::cpe_platform_iterator_free (struct cpe_platform_iterator *it)
struct cpe_testexprcpe_testexpr_iterator::cpe_testexpr_iterator_next (struct cpe_testexpr_iterator *it)
bool cpe_testexpr_iterator::cpe_testexpr_iterator_has_more (struct cpe_testexpr_iterator *it)
void cpe_testexpr_iterator::cpe_testexpr_iterator_free (struct cpe_testexpr_iterator *it)

Getters

Return value is pointer to structure's member.

Do not free unless you null the pointer in the structure. Use remove function otherwise.



cpe_lang_oper_t cpe_testexpr::cpe_testexpr_get_oper (const struct cpe_testexpr *item)
 cpe_testexpr functions to get variable members
struct cpe_testexpr_iteratorcpe_testexpr::cpe_testexpr_get_meta_expr (const struct cpe_testexpr *item)
 Get CPE expression subexpression.
struct cpe_namecpe_testexpr::cpe_testexpr_get_meta_cpe (const struct cpe_testexpr *item)
 Get CPE name to match against.
struct cpe_testexprcpe_testexpr::cpe_testexpr_get_next (const struct cpe_testexpr *expr)
 Function to get next expr from array.
struct cpe_platform_iteratorcpe_lang_model::cpe_lang_model_get_platforms (const struct cpe_lang_model *item)
 cpe_lang_model function to get CPE platforms
struct cpe_platformcpe_lang_model::cpe_lang_model_get_item (const struct cpe_lang_model *item, const char *key)
 cpe_lang_model function to get CPE platforms
const char * cpe_platform::cpe_platform_get_id (const struct cpe_platform *item)
 cpe_platform functions to get id
const char * cpe_platform::cpe_platform_get_remark (const struct cpe_platform *item)
 cpe_platform functions to get remark
struct oscap_text_iteratorcpe_platform::cpe_platform_get_titles (const struct cpe_platform *item)
 cpe_platform functions to get titles
struct cpe_testexprcpe_platform::cpe_platform_get_expr (const struct cpe_platform *item)
 cpe_platform functions to get test expression

Setters

For lists use add functions.

Parameters of set functions are duplicated in memory and need to be freed by caller.



bool cpe_lang_model::cpe_lang_model_add_platform (struct cpe_lang_model *lang, struct cpe_platform *platform)
 Add platform to CPE lang model.
bool cpe_platform::cpe_platform_add_title (struct cpe_platform *platform, struct oscap_text *title)
 Add title to platform.
bool cpe_testexpr::cpe_testexpr_add_subexpression (struct cpe_testexpr *expr, struct cpe_testexpr *sub)
 Add XML namespace to CPE lang model.
bool cpe_platform::cpe_platform_set_id (struct cpe_platform *platform, const char *new_id)
 Set ID of CPE platform.
bool cpe_platform::cpe_platform_set_remark (struct cpe_platform *platform, const char *new_remark)
 Set remark of CPE platform.
bool cpe_platform::cpe_platform_set_expr (struct cpe_platform *platform, struct cpe_testexpr *expr)
 Set evaluation expression for this CPE platform.
bool cpe_testexpr::cpe_testexpr_set_oper (struct cpe_testexpr *expr, cpe_lang_oper_t oper)
 Set CPE operation.
bool cpe_testexpr::cpe_testexpr_set_name (struct cpe_testexpr *expr, struct cpe_name *name)
 Set CPE name.

Evaluators



const char * cpe_lang_model::cpe_lang_model_supported (void)
 Get supported version of CPE language XML.
bool cpe_platform::cpe_platform_match_cpe (struct cpe_name **cpe, size_t n, const struct cpe_platform *platform)
 Function to match cpe in platform.

Detailed Description

cpe_language.png

Class diagram


Enumeration Type Documentation

CPE language operators.

Enumerator:
CPE_LANG_OPER_INVALID 

invalid or unknown operation

CPE_LANG_OPER_AND 

logical AND

CPE_LANG_OPER_OR 

logical OR

CPE_LANG_OPER_MATCH 

match against specified CPE

CPE_LANG_OPER_MASK 

mask to extract the operator w/o possible negation

CPE_LANG_OPER_NOT 

negate


Function Documentation

void cpe_lang_model_export ( const struct cpe_lang_model spec,
const char *  file 
) [inherited]

Write the lang_model to a file.

Parameters:
spec CPE lang model
target target structure with filename, endcoding and indent information
const char * cpe_lang_model_supported ( void   )  [inherited]

Get supported version of CPE language XML.

Returns:
version of XML file format
void cpe_platform_iterator_free ( struct cpe_platform_iterator it  )  [inherited]
bool cpe_platform_iterator_has_more ( struct cpe_platform_iterator it  )  [inherited]
struct cpe_platform * cpe_platform_iterator_next ( struct cpe_platform_iterator it  )  [read, inherited]
void cpe_platform_iterator_remove ( struct cpe_platform_iterator it,
struct cpe_lang_model parent 
) [inherited]
void cpe_platform_iterator_reset ( struct cpe_platform_iterator it  )  [inherited]
bool cpe_platform_match_cpe ( struct cpe_name **  cpe,
size_t  n,
const struct cpe_platform platform 
) [inherited]

Function to match cpe in platform.

Parameters:
cpe to be matched with
n size
platform CPE platform
bool cpe_platform_set_expr ( struct cpe_platform platform,
struct cpe_testexpr expr 
) [inherited]

Set evaluation expression for this CPE platform.

Expression has to be a logical-test (i.e. its operation shall be AND or OR, possibly with negation)

bool cpe_testexpr_add_subexpression ( struct cpe_testexpr expr,
struct cpe_testexpr sub 
) [inherited]

Add XML namespace to CPE lang model.

Add an subexpression to a compound CPE language expression.

Expression has to be of type CPE_LANG_OPER_AND or CPE_LANG_OPER_OR, possibly with negation.

struct cpe_testexpr * cpe_testexpr_clone ( struct cpe_testexpr old_expr  )  [read, inherited]

Clone CPE test expression.

Parameters:
old_expr CPE test expression
struct cpe_name * cpe_testexpr_get_meta_cpe ( const struct cpe_testexpr item  )  [read, inherited]

Get CPE name to match against.

Only valid for CPE_LANG_OPER_MATCH.

struct cpe_testexpr_iterator * cpe_testexpr_get_meta_expr ( const struct cpe_testexpr item  )  [read, inherited]

Get CPE expression subexpression.

Not valid for CPE_LANG_OPER_MATCH operation.

struct cpe_testexpr * cpe_testexpr_get_next ( const struct cpe_testexpr expr  )  [read, inherited]

Function to get next expr from array.

Parameters:
expr CPE Test expression structure
void cpe_testexpr_iterator_free ( struct cpe_testexpr_iterator it  )  [inherited]
bool cpe_testexpr_iterator_has_more ( struct cpe_testexpr_iterator it  )  [inherited]
struct cpe_testexpr * cpe_testexpr_iterator_next ( struct cpe_testexpr_iterator it  )  [read, inherited]
bool cpe_testexpr_set_name ( struct cpe_testexpr expr,
struct cpe_name name 
) [inherited]

Set CPE name.

If the expression does not have type CPE_LANG_OPER_MATCH, this function has no effect and returns false.

bool cpe_testexpr_set_oper ( struct cpe_testexpr expr,
cpe_lang_oper_t  oper 
) [inherited]

Set CPE operation.

Any subexpressions and CPE names associated with this expression will be removed.


Generated on 30 Mar 2012 for Open SCAP Library by  doxygen 1.6.1