X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ffile-handle.h;h=d7c14e991b7ea5d8283fcba9ea07c52e220d668b;hb=c0ce908d11fa172e1d461f83156c27345c259a75;hp=5f18202a48069eff675c36c0c17d604333ccc5f0;hpb=92bfefccd465052e492f669ce561aa25b0110283;p=pspp diff --git a/src/file-handle.h b/src/file-handle.h index 5f18202a48..d7c14e991b 100644 --- a/src/file-handle.h +++ b/src/file-handle.h @@ -14,40 +14,15 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ #if !file_handle_h #define file_handle_h 1 -/* File handle provider (fhp). - - This module provides file handles in the form of file_handle - structures to the dfm and sfm modules, which are known as file - handle users (fhusers). fhp does not know anything about file - contents. */ +/* File handles. */ #include -#include "error.h" - -struct file_handle; - -/* Services that fhusers provide to fhp. */ -struct fh_ext_class - { - int magic; /* Magic identifier for fhuser. */ - const char *name; /* String identifier for fhuser. */ - - void (*close) (struct file_handle *); /* Closes the file. */ - }; - -/* Mostly-opaque structure. */ -struct file_handle - { - struct private_file_handle *private; - const struct fh_ext_class *class; /* Polymorphism support. */ - void *ext; /* Extension struct for fhuser use. */ - }; /* File modes. */ enum file_handle_mode @@ -56,20 +31,22 @@ enum file_handle_mode MODE_BINARY /* Fixed-length records. */ }; -/* Pointer to the file handle that corresponds to data in the command - file entered via BEGIN DATA/END DATA. */ -extern struct file_handle *inline_file; -/* Initialization. */ -void fh_init_files (void); + +void fh_init(void); +void fh_done(void); + +/* Parsing handles. */ +struct file_handle *fh_parse (void); + /* Opening and closing handles. */ -struct file_handle *fh_parse_file_handle (void); -void fh_close_handle (struct file_handle *handle); +void **fh_open (struct file_handle *, const char *type, const char *mode); +int fh_close (struct file_handle *, const char *type, const char *mode); /* Handle info. */ -const char *handle_get_name (const struct file_handle *handle); -const char *handle_get_filename (const struct file_handle *handle); +const char *handle_get_name (const struct file_handle *); +const char *handle_get_filename (const struct file_handle *); enum file_handle_mode handle_get_mode (const struct file_handle *); size_t handle_get_record_width (const struct file_handle *); size_t handle_get_tab_width (const struct file_handle *);