00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef OVAL_DEFINITIONS_IMPL
00032 #define OVAL_DEFINITIONS_IMPL
00033
00034 #include <libxml/xmlreader.h>
00035 #include "public/oval_definitions.h"
00036 #include "oval_parser_impl.h"
00037 #include "oval_agent_api_impl.h"
00038 #include "oval_string_map_impl.h"
00039 #include "../common/util.h"
00040
00041 OSCAP_HIDDEN_START;
00042
00043 oval_family_t oval_family_parse(xmlTextReaderPtr);
00044 oval_subtype_t oval_subtype_parse(xmlTextReaderPtr);
00045 oval_affected_family_t oval_affected_family_parse(xmlTextReaderPtr);
00046 oval_operator_t oval_operator_parse(xmlTextReaderPtr, char *,
00047 oval_operator_t);
00048 oval_operation_t oval_operation_parse(xmlTextReaderPtr, char *,
00049 oval_operation_t);
00050 oval_definition_class_t oval_definition_class_parse(xmlTextReaderPtr);
00051 oval_existence_t oval_existence_parse(xmlTextReaderPtr, char *,
00052 oval_existence_t);
00053 oval_check_t oval_check_parse(xmlTextReaderPtr, char *, oval_check_t);
00054 oval_entity_type_t oval_entity_type_parse(xmlTextReaderPtr);
00055 oval_datatype_t oval_datatype_parse(xmlTextReaderPtr, char *,
00056 oval_datatype_t);
00057 oval_entity_varref_type_t oval_entity_varref_type_parse(xmlTextReaderPtr);
00058 oval_setobject_type_t oval_set_type_parse(xmlTextReaderPtr);
00059 oval_setobject_operation_t oval_set_operation_parse(xmlTextReaderPtr, char *,
00060 oval_setobject_operation_t);
00061 oval_variable_type_t oval_variable_type_parse(xmlTextReaderPtr);
00062 oval_component_type_t oval_component_type_parse(xmlTextReaderPtr);
00063 oval_arithmetic_operation_t oval_arithmetic_operation_parse(xmlTextReaderPtr,
00064 char *,
00065 oval_arithmetic_operation_t);
00066 oval_datetime_format_t oval_datetime_format_parse(xmlTextReaderPtr, char *,
00067 oval_arithmetic_operation_t);
00068 oval_message_level_t oval_message_level_parse(xmlTextReaderPtr, char *,
00069 oval_message_level_t);
00070
00071
00072
00073 struct oval_affected *oval_affected_clone(struct oval_affected *);
00074 typedef void (*oval_affected_consumer) (struct oval_affected *, void *);
00075 int oval_affected_parse_tag(xmlTextReaderPtr reader,
00076 struct oval_parser_context *context,
00077 oval_affected_consumer, void *);
00078 void oval_affected_to_print(struct oval_affected *affected, char *indent, int idx);
00079
00080 int oval_test_parse_tag(xmlTextReaderPtr reader,
00081 struct oval_parser_context *context);
00082 void oval_test_to_print(struct oval_test *test, char *indent, int index);
00083 xmlNode *oval_test_to_dom (struct oval_test *, xmlDoc *, xmlNode *);
00084
00085 struct oval_criteria_node *oval_criteria_node_clone(struct oval_criteria_node *, struct oval_definition_model *);
00086 void oval_criteria_node_to_print(struct oval_criteria_node *node, char *indent, int index);
00087 xmlNode *oval_criteria_node_to_dom (struct oval_criteria_node *, xmlDoc *, xmlNode *);
00088 typedef void (*oval_criteria_consumer) (struct oval_criteria_node *, void *);
00089 int oval_criteria_parse_tag(xmlTextReaderPtr, struct oval_parser_context *,
00090 oval_criteria_consumer, void *);
00091
00092 struct oval_reference *oval_reference_clone(struct oval_reference *);
00093 typedef void (*oval_reference_consumer) (struct oval_reference *, void *);
00094 int oval_reference_parse_tag(xmlTextReaderPtr, struct oval_parser_context *,
00095 oval_reference_consumer, void *);
00096 void oval_reference_to_print(struct oval_reference *ref, char *indent, int index);
00097
00098 int oval_definition_parse_tag(xmlTextReaderPtr reader,
00099 struct oval_parser_context *context);
00100 void oval_definition_to_print(struct oval_definition *definition, char *indent, int idx);
00101 xmlNode *oval_definition_to_dom (struct oval_definition *, xmlDoc *, xmlNode *);
00102
00103 int oval_object_parse_tag(xmlTextReaderPtr reader,
00104 struct oval_parser_context *context);
00105 void oval_object_to_print(struct oval_object *object, char *indent, int idx);
00106 xmlNode *oval_object_to_dom (struct oval_object *, xmlDoc *, xmlNode *);
00107
00108 int oval_state_parse_tag(xmlTextReaderPtr reader,
00109 struct oval_parser_context *context);
00110 void oval_state_to_print(struct oval_state *, char *indent, int index);
00111 xmlNode *oval_state_to_dom (struct oval_state *, xmlDoc *, xmlNode *);
00112
00113 int oval_variable_parse_tag(xmlTextReaderPtr reader,
00114 struct oval_parser_context *context);
00115 void oval_variable_to_print(struct oval_variable *variable, char *indent, int idx);
00116 xmlNode *oval_variable_to_dom (struct oval_variable *, xmlDoc *, xmlNode *);
00117
00118 void oval_variable_binding_to_dom (struct oval_variable_binding *, xmlDoc *, xmlNode *);
00119 typedef void (*oval_variable_binding_consumer) (struct oval_variable_binding *,
00120 void *);
00121 int oval_variable_binding_parse_tag
00122 (xmlTextReaderPtr, struct oval_parser_context *, oval_variable_binding_consumer, void *);
00123 struct oval_variable_binding *oval_variable_binding_clone(struct oval_variable_binding *, struct oval_definition_model *);
00124
00125 struct oval_object_content *oval_object_content_clone(struct oval_object_content *, struct oval_definition_model *);
00126 typedef void (*oval_object_content_consumer) (struct oval_object_content *,
00127 void *);
00128 xmlNode *oval_object_content_to_dom
00129 (struct oval_object_content *, xmlDoc *, xmlNode *);
00130 int oval_object_content_parse_tag(xmlTextReaderPtr,
00131 struct oval_parser_context *,
00132 oval_object_content_consumer, void *);
00133 void oval_object_content_to_print(struct oval_object_content *, char *indent, int index);
00134
00135 struct oval_state_content *oval_state_content_clone(struct oval_state_content *, struct oval_definition_model *);
00136 int oval_state_content_parse_tag
00137 (xmlTextReaderPtr, struct oval_parser_context *,
00138 oscap_consumer_func, void *);
00139 xmlNode *oval_state_content_to_dom
00140 (struct oval_state_content *, xmlDoc *, xmlNode *);
00141
00142 struct oval_behavior *oval_behavior_clone(struct oval_behavior *);
00143 typedef void (*oval_behavior_consumer) (struct oval_behavior *, void *);
00144 int oval_behavior_parse_tag(xmlTextReaderPtr, struct oval_parser_context *,
00145 oval_family_t, oval_behavior_consumer, void *);
00146 void oval_behavior_to_print(struct oval_behavior *, char *indent, int index);
00147
00148 struct oval_entity *oval_entity_clone(struct oval_entity *, struct oval_definition_model *);
00149 int oval_entity_parse_tag(xmlTextReaderPtr, struct oval_parser_context *,
00150 oscap_consumer_func, void *);
00151 void oval_entity_to_print(struct oval_entity *, char *indent, int index);
00152 xmlNode *oval_entity_to_dom
00153 (struct oval_entity *, xmlDoc *, xmlNode *);
00154
00155 struct oval_setobject *oval_setobject_clone(struct oval_setobject *, struct oval_definition_model *);
00156 typedef void (*oval_set_consumer) (struct oval_setobject *, void *);
00157 int oval_set_parse_tag(xmlTextReaderPtr, struct oval_parser_context *,
00158 oval_set_consumer, void *);
00159 void oval_set_to_print(struct oval_setobject *, char *indent, int index);
00160 xmlNode *oval_set_to_dom
00161 (struct oval_setobject *, xmlDoc *, xmlNode *);
00162
00163 struct oval_value *oval_value_clone(struct oval_value *);
00164 typedef void (*oval_value_consumer) (struct oval_value *, void *);
00165 int oval_value_parse_tag(xmlTextReaderPtr, struct oval_parser_context *,
00166 oval_value_consumer, void *);
00167 void oval_value_to_print(struct oval_value *value, char *indent, int idx);
00168 xmlNode *oval_value_to_dom(struct oval_value *, xmlDoc *, xmlNode *);
00169
00170 struct oval_component *oval_component_clone(struct oval_component *, struct oval_definition_model *);
00171 void oval_component_evaluate(struct oval_component *component, struct oval_string_map *map);
00172 typedef void (*oval_component_consumer) (struct oval_component *, void *);
00173 int oval_component_parse_tag(xmlTextReaderPtr, struct oval_parser_context *,
00174 oval_component_consumer, void *);
00175 void oval_component_to_print(struct oval_component *, char *indent, int index);
00176 xmlNode *oval_component_to_dom(struct oval_component *, xmlDoc *, xmlNode *);
00177
00178 typedef void (*oval_message_consumer)(struct oval_message *, void *);
00179 int oval_message_parse_tag(xmlTextReaderPtr,
00180 struct oval_parser_context *, oscap_consumer_func, void *);
00181 void oval_message_to_print(struct oval_message *message, char *indent,
00182 int index);
00183 void oval_message_to_dom (struct oval_message *, xmlDoc *, xmlNode *);
00184
00185
00186 #define OVAL_INDEPENDENT_SYSCHAR_SUBTYPE 7999
00187
00188 OSCAP_HIDDEN_END
00189
00190 #endif