1 #ifdef RCSID
2 static char RCSid[] =
3 "$Header: d:/cvsroot/tads/tads3/VMFILE.CPP,v 1.2 1999/05/17 02:52:28 MJRoberts Exp $";
4 #endif
5
6 /*
7 * Copyright (c) 1998, 2002 Michael J. Roberts. All Rights Reserved.
8 *
9 * Please see the accompanying license file, LICENSE.TXT, for information
10 * on using and copying this software.
11 */
12 /*
13 Name
14 vmfile.cpp - VM file implementation
15 Function
16
17 Notes
18
19 Modified
20 10/28/98 MJRoberts - Creation
21 */
22
23 #include "t3std.h"
24 #include "vmfile.h"
25 #include "vmerr.h"
26
27
28 /*
29 * delete the file object
30 */
~CVmFile()31 CVmFile::~CVmFile()
32 {
33 /* if we still have an underlying OS file, close it */
34 if (fp_ != 0)
35 osfcls(fp_);
36 }
37
38 /*
39 * open for reading
40 */
open_read(const char * fname,os_filetype_t typ)41 void CVmFile::open_read(const char *fname, os_filetype_t typ)
42 {
43 /* try opening the underlying OS file for binary reading */
44 fp_ = osfoprb(fname, typ);
45
46 /* if that failed, throw an error */
47 if (fp_ == 0)
48 err_throw(VMERR_FILE_NOT_FOUND);
49 }
50
51 /*
52 * open for writing
53 */
open_write(const char * fname,os_filetype_t typ)54 void CVmFile::open_write(const char *fname, os_filetype_t typ)
55 {
56 /* try opening the underlying OS file for binary writing */
57 fp_ = osfopwb(fname, typ);
58
59 /* if that failed, throw an error */
60 if (fp_ == 0)
61 err_throw(VMERR_CREATE_FILE);
62 }
63
64