/* Copyright (C) 2005 Red Hat, Inc. */ #ifndef _SEMANAGE_DATABASE_FILE_INTERNAL_H_ #define _SEMANAGE_DATABASE_FILE_INTERNAL_H_ #include #include "database.h" #include "parse_utils.h" #include "handle.h" struct dbase_file; typedef struct dbase_file dbase_file_t; /* FILE extension to RECORD interface - method table */ typedef struct record_file_table { /* Fill record structuure based on supplied parse info. * Parser must return STATUS_NODATA when EOF is encountered. * Parser must handle NULL file stream correctly */ int (*parse) (semanage_handle_t * handle, parse_info_t * info, record_t * record); /* Print record to stream */ int (*print) (semanage_handle_t * handle, record_t * record, FILE * str); } record_file_table_t; /* FILE - initialization */ extern int dbase_file_init(semanage_handle_t * handle, const char *path_ro, const char *path_rw, record_table_t * rtable, record_file_table_t * rftable, dbase_file_t ** dbase); /* FILE - release */ extern void dbase_file_release(dbase_file_t * dbase); /* FILE - method table implementation */ extern dbase_table_t SEMANAGE_FILE_DTABLE; #endif