00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00040 #ifndef OVAL_AGENT_API_H_
00041 #define OVAL_AGENT_API_H_
00042
00043 #include "oval_definitions.h"
00044 #include "oval_system_characteristics.h"
00045 #include "oval_results.h"
00046
00047 struct oval_export_target;
00048 struct oval_import_source;
00049
00055 struct oval_import_source *oval_import_source_new_file(char *filename);
00056
00060 void oval_import_source_free(
00061 struct oval_import_source *source);
00062
00068 struct oval_export_target *oval_export_target_new_file(char *filename, char* encoding);
00069
00073 void oval_export_target_free(struct oval_export_target *target);
00074
00075
00082 struct oval_object_model;
00083
00090 struct oval_syschar_model;
00091
00098 struct oval_results_model;
00099
00103 struct oval_object_model *oval_object_model_new();
00104
00105
00106
00107
00108 void oval_object_model_free(struct oval_object_model * model);
00109
00111 typedef enum {
00112 XML_VALIDITY_WARNING = 1,
00113 XML_VALIDITY_ERROR = 2,
00114 XML_WARNING = 3,
00115 XML_ERROR = 4,
00116 OVAL_LOG_INFO = 15,
00117 OVAL_LOG_DEBUG = 16,
00118 OVAL_LOG_WARN = 17
00119 } oval_xml_severity_t;
00120
00121 struct oval_xml_error {
00122 void *user_arg;
00123 char *message;
00124 oval_xml_severity_t severity;
00125 int line_number;
00126 char *system_id;
00127 };
00128
00130 typedef int (*oval_xml_error_handler) (struct oval_xml_error *, void *user_arg);
00131
00143 void oval_object_model_load(
00144 struct oval_object_model *model,
00145 struct oval_import_source *source,
00146 oval_xml_error_handler error_handler, void *client);
00147
00148
00149
00158 struct oval_definition *oval_object_model_get_definition(
00159 struct oval_object_model *model,
00160 char *id);
00161
00170 struct oval_test *oval_object_model_get_test(
00171 struct oval_object_model *model,
00172 char *id);
00173
00182 struct oval_object *oval_object_model_get_object(
00183 struct oval_object_model *model,
00184 char *id);
00185
00194 struct oval_state *oval_object_model_get_state(
00195 struct oval_object_model *model,
00196 char *id);
00197
00206 struct oval_variable *oval_object_model_get_variable(
00207 struct oval_object_model *model,
00208 char *id);
00209
00216 struct oval_definition_iterator *oval_object_model_get_definitions(
00217 struct oval_object_model *model);
00218
00225 struct oval_test_iterator *oval_object_model_get_tests(
00226 struct oval_object_model *model);
00227
00234 struct oval_object_iterator *oval_object_model_get_objects(
00235 struct oval_object_model *model);
00236
00243 struct oval_state_iterator *oval_object_model_get_states(
00244 struct oval_object_model *model);
00245
00252 struct oval_variable_iterator *oval_object_model_get_variables(
00253 struct oval_object_model *model);
00254
00255 int oval_object_model_export(
00256 struct oval_object_model *, struct oval_export_target *);
00257
00258
00259 void oval_object_model_add_definition(struct oval_object_model *, struct oval_definition *);
00260 void oval_object_model_add_test(struct oval_object_model *, struct oval_test *);
00261 void oval_object_model_add_object(struct oval_object_model *, struct oval_object *);
00262 void oval_object_model_add_state(struct oval_object_model *, struct oval_state *);
00263 void oval_object_model_add_variable(struct oval_object_model *, struct oval_variable *);
00264 void oval_object_model_add_sysinfo(struct oval_object_model *, struct oval_sysinfo *);
00265
00273 struct oval_syschar_model *oval_syschar_model_new(
00274 struct oval_object_model *object_model,
00275 struct oval_variable_binding_iterator *bindings);
00276
00277
00278
00284 void oval_syschar_model_free(struct oval_syschar_model *model);
00285
00291 struct oval_object_model *oval_syschar_model_get_object_model(
00292 struct oval_syschar_model *model);
00298 struct oval_syschar_iterator *oval_syschar_model_get_syschars(
00299 struct oval_syschar_model *model);
00300
00306 struct oval_sysinfo *oval_syschar_model_get_sysinfo(
00307 struct oval_syschar_model *model);
00308
00317 struct oval_syschar *oval_syschar_model_get_syschar(
00318 struct oval_syschar_model *model,
00319 char *object_id);
00320
00321 bool oval_syschar_model_add_variable_binding(struct oval_syschar_model *, struct oval_variable_binding *);
00322
00327 int oval_syschar_model_export(
00328 struct oval_syschar_model *, struct oval_export_target *);
00329
00334 void oval_syschar_model_load(struct oval_syschar_model*, struct oval_import_source*,
00335 oval_xml_error_handler, void*);
00336
00343 struct oval_results_model *oval_results_model_new(
00344 struct oval_object_model *object_model, struct oval_syschar_model **);
00345
00351 void oval_results_model_free(struct oval_results_model *model);
00352
00353
00359 struct oval_object_model *oval_results_model_get_object_model
00360 (struct oval_results_model *model);
00361
00367 struct oval_result_system_iterator *oval_results_model_get_systems
00368 (struct oval_results_model *);
00369
00370 void oval_results_model_add_system(struct oval_results_model *, struct oval_result_system *);
00371
00380 struct oval_result_directives *oval_results_model_load
00381 (struct oval_results_model *, struct oval_import_source *,
00382 oval_xml_error_handler, void*);
00383
00388 struct oval_result_directives *oval_result_directives_new();
00389
00394 void oval_result_directives_free(struct oval_result_directives *);
00395
00401 int oval_results_model_export(struct oval_results_model *, struct oval_result_directives *, struct oval_export_target *);
00402
00403
00408 struct oval_syschar *oval_object_probe(struct oval_object *, struct oval_object_model *model);
00409
00410 #endif