00001 #ifndef OVAL_AGENT_API_H_
00002 #define OVAL_AGENT_API_H_
00003 #include <liboval/oval_definitions.h>
00004 #include <liboval/oval_system_characteristics.h>
00005 #include <liboval/oval_results.h>
00006
00007 struct export_target_s;
00008 struct import_source_s;
00009
00010 struct oval_object_model_s;
00011
00012 struct oval_object_model_s *oval_object_model_new();
00013
00014
00015 typedef enum {
00016 XML_VALIDITY_WARNING = 1,
00017 XML_VALIDITY_ERROR = 2,
00018 XML_WARNING = 3,
00019 XML_ERROR = 4
00020 } oval_xml_severity_enum;
00021
00022 struct oval_xml_error_s{
00023 void* user_arg;
00024 char* message;
00025 oval_xml_severity_enum severity;
00026 int line_number;
00027 char* system_id;
00028 };
00029
00030 typedef int (*oval_xml_error_handler)(struct oval_xml_error_s*, void* user_arg);
00031
00032 void load_oval_definitions(struct oval_object_model_s*, struct import_source_s*, oval_xml_error_handler, void*);
00033
00034 struct oval_definition_s *get_oval_definition(struct oval_object_model_s*, char *def_urn);
00035 struct oval_test_s *get_oval_test (struct oval_object_model_s*, char *tst_urn);
00036 struct oval_object_s *get_oval_object (struct oval_object_model_s*, char *obj_urn);
00037 struct oval_state_s *get_oval_state (struct oval_object_model_s*, char *ste_urn);
00038 struct oval_variable_s *get_oval_variable (struct oval_object_model_s*, char *var_urn);
00039
00040 struct oval_iterator_definition_s *get_oval_definitions(struct oval_object_model_s*);
00041 struct oval_iterator_test_s *get_oval_tests (struct oval_object_model_s*);
00042 struct oval_iterator_object_s *get_oval_objects (struct oval_object_model_s*);
00043 struct oval_iterator_state_s *get_oval_states (struct oval_object_model_s*);
00044 struct oval_iterator_variable_s *get_oval_variables (struct oval_object_model_s*);
00045
00046
00047 int export_characteristics(struct oval_iterator_syschar_s*,struct export_target_s*);
00048
00049
00050 int export_results(struct oval_result_s*,struct export_target_s*);
00051
00052 struct oval_iterator_syschar_s *probe_object (struct oval_object_s * , struct oval_iterator_variable_binding_s*);
00053 struct oval_result_test_s *resolve_test (struct oval_test_s * , struct oval_iterator_syschar_s*, struct oval_iterator_variable_binding_s*);
00054 struct oval_result_s *resolve_definition (struct oval_definition_s*, struct oval_iterator_syschar_s*, struct oval_iterator_variable_binding_s*);
00055
00056 #endif