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)
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.
void cpe_testexpr::cpe_testexpr_free (struct cpe_testexpr *expr)
 Free 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.
const char * cpe_lang_model::cpe_lang_model_get_ns_prefix (const struct cpe_lang_model *item)
 cpe_lang_model function to get namespace prefix
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
struct xml_metadata_iteratorcpe_lang_model::cpe_lang_model_get_xmlns (const struct cpe_lang_model *item)
 cpe_lang_model function to get xmlns attribute
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_title_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

Get XML namespace from CPE lang model

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_lang_model::cpe_lang_model_add_xml (struct cpe_lang_model *lang, struct xml_metadata *xml)
 Add xml metadata to CPE lang model.
bool cpe_platform::cpe_platform_add_title (struct cpe_platform *platform, struct oscap_title *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_lang_model::cpe_lang_model_set_ns_prefix (struct cpe_lang_model *model, const char *new_prefix)
 Set ns_prefix 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]
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_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 14 Jul 2010 for Open SCAP Library by  doxygen 1.6.1