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_AGENT_API_H_
00032 #define OVAL_AGENT_API_H_
00033
00034 #include "oval_definitions.h"
00035 #include "oval_system_characteristics.h"
00036 #include "oval_results.h"
00037
00038 struct export_target;
00039 struct import_source;
00040
00041 struct import_source *import_source_file(char *filename);
00042 void import_source_free(struct import_source *);
00043
00044 struct oval_object_model;
00045
00046 struct oval_object_model *oval_object_model_new();
00047
00048 typedef enum {
00049 XML_VALIDITY_WARNING = 1,
00050 XML_VALIDITY_ERROR = 2,
00051 XML_WARNING = 3,
00052 XML_ERROR = 4
00053 } oval_xml_severity_enum;
00054
00055 struct oval_xml_error {
00056 void *user_arg;
00057 char *message;
00058 oval_xml_severity_enum severity;
00059 int line_number;
00060 char *system_id;
00061 };
00062
00063 typedef int (*oval_xml_error_handler) (struct oval_xml_error *, void *user_arg);
00064
00065 void load_oval_definitions(struct oval_object_model *, struct import_source *,
00066 oval_xml_error_handler, void *);
00067
00068 struct oval_definition *get_oval_definition(struct oval_object_model *,
00069 char *def_urn);
00070 struct oval_test *get_oval_test(struct oval_object_model *, char *tst_urn);
00071 struct oval_object *get_oval_object(struct oval_object_model *, char *obj_urn);
00072 struct oval_state *get_oval_state(struct oval_object_model *, char *ste_urn);
00073 struct oval_variable *get_oval_variable(struct oval_object_model *,
00074 char *var_urn);
00075
00076 struct oval_iterator_definition *get_oval_definitions(struct oval_object_model
00077 *);
00078 struct oval_iterator_test *get_oval_tests(struct oval_object_model *);
00079 struct oval_iterator_object *get_oval_objects(struct oval_object_model *);
00080 struct oval_iterator_state *get_oval_states(struct oval_object_model *);
00081 struct oval_iterator_variable *get_oval_variables(struct oval_object_model *);
00082
00083
00084 int export_characteristics(struct oval_iterator_syschar *,
00085 struct export_target *);
00086
00087
00088 int export_results(struct oval_result *, struct export_target *);
00089
00090 struct oval_iterator_syschar *probe_object(struct oval_object *,
00091 struct oval_iterator_variable_binding
00092 *);
00093 struct oval_result_test *resolve_test(struct oval_test *,
00094 struct oval_iterator_syschar *,
00095 struct oval_iterator_variable_binding *);
00096 struct oval_result *resolve_definition(struct oval_definition *,
00097 struct oval_iterator_syschar *,
00098 struct oval_iterator_variable_binding *);
00099
00100 #endif