mirror of
https://github.com/elliotnunn/BuildCubeE.git
synced 2024-11-19 00:05:25 +00:00
111 lines
3.0 KiB
C
111 lines
3.0 KiB
C
|
/*ident "@(#)C++env:incl-master/const-headers/fstream.h 1.2" */
|
||
|
/**************************************************************************
|
||
|
Copyright (c) 1984 AT&T
|
||
|
All Rights Reserved
|
||
|
|
||
|
THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T
|
||
|
|
||
|
The copyright notice above does not evidence any
|
||
|
actual or intended publication of such source code.
|
||
|
|
||
|
*****************************************************************************/
|
||
|
#ifndef __FSTREAM__
|
||
|
#define __FSTREAM__
|
||
|
|
||
|
#include <iostream.h>
|
||
|
|
||
|
class filebuf : public streambuf { /* a stream buffer for files */
|
||
|
public:
|
||
|
filebuf() ;
|
||
|
filebuf(int fd);
|
||
|
filebuf(int fd, char* p, int l) ;
|
||
|
|
||
|
int is_open() { return opened ; }
|
||
|
int fd() { return xfd ; }
|
||
|
filebuf* open(const char *name, int om/*, int prot=0664*/); // deleted for Macintosh
|
||
|
filebuf* attach(int fd) ;
|
||
|
filebuf* close() ;
|
||
|
~filebuf() ;
|
||
|
public: /* virtuals */
|
||
|
virtual int overflow(int=EOF);
|
||
|
virtual int underflow();
|
||
|
virtual int sync() ;
|
||
|
virtual streampos
|
||
|
#ifdef __ATT2_1
|
||
|
seekoff(streamoff,ios::seek_dir,int) ;
|
||
|
#else /*__ATT2_1*/
|
||
|
seekoff(streamoff,seek_dir,int) ;
|
||
|
#endif /*__ATT2_1*/
|
||
|
virtual streambuf*
|
||
|
setbuf(char* p, int len) ;
|
||
|
protected:
|
||
|
int xfd;
|
||
|
int mode ;
|
||
|
char opened;
|
||
|
streampos last_seek ;
|
||
|
char* in_start;
|
||
|
int last_op();
|
||
|
char lahead[2] ;
|
||
|
};
|
||
|
|
||
|
class fstreambase : virtual public ios {
|
||
|
public:
|
||
|
fstreambase() ;
|
||
|
|
||
|
fstreambase(const char* name,
|
||
|
int mode/*,int prot=0664*/) ; // deleted for Macintosh
|
||
|
fstreambase(int fd) ;
|
||
|
fstreambase(int fd, char* p, int l) ;
|
||
|
~fstreambase() ;
|
||
|
void open(const char* name, int mode/*, int prot=0664*/) ; // deleted for Macintosh
|
||
|
void attach(int fd);
|
||
|
void close() ;
|
||
|
void setbuf(char* p, int l) ;
|
||
|
filebuf* rdbuf() { return &buf ; }
|
||
|
private:
|
||
|
filebuf buf ;
|
||
|
protected:
|
||
|
void verify(int) ;
|
||
|
} ;
|
||
|
|
||
|
class ifstream : public fstreambase, public istream {
|
||
|
public:
|
||
|
ifstream() ;
|
||
|
ifstream(const char* name,
|
||
|
int mode=ios::in /*,int prot=0664*/) ; // for Macintosh
|
||
|
ifstream(int fd) ;
|
||
|
ifstream(int fd, char* p, int l) ;
|
||
|
~ifstream() ;
|
||
|
|
||
|
filebuf* rdbuf() { return fstreambase::rdbuf(); }
|
||
|
void open(const char* name, int mode=ios::in/*, int prot=0664*/) ; // deleted for Macintosh
|
||
|
} ;
|
||
|
|
||
|
class ofstream : public fstreambase, public ostream {
|
||
|
public:
|
||
|
ofstream() ;
|
||
|
ofstream(const char* name,
|
||
|
int mode=ios::out/*,int prot=0664*/) ; // for Macintosh
|
||
|
ofstream(int fd) ;
|
||
|
ofstream(int fd, char* p, int l) ;
|
||
|
~ofstream() ;
|
||
|
|
||
|
filebuf* rdbuf() { return fstreambase::rdbuf(); }
|
||
|
void open(const char* name, int mode=ios::out /*, int prot=0664*/) ; // deleted for Macintosh
|
||
|
} ;
|
||
|
|
||
|
class fstream : public fstreambase, public iostream {
|
||
|
public:
|
||
|
fstream() ;
|
||
|
|
||
|
fstream(const char* name,
|
||
|
int mode/*,int prot=0664*/) ; // for Macintosh
|
||
|
fstream(int fd) ;
|
||
|
fstream(int fd, char* p, int l) ;
|
||
|
~fstream() ;
|
||
|
filebuf* rdbuf() { return fstreambase::rdbuf(); }
|
||
|
void open(const char* name, int mode/*, int prot=0664*/) ; // deleted for Macintosh
|
||
|
} ;
|
||
|
|
||
|
#endif
|