112 lines
2.3 KiB
C++
112 lines
2.3 KiB
C++
|
#if __SC__ || __RCC__
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#ifndef _STDSTREAM_H_
|
||
|
#define _STDSTREAM_H_
|
||
|
|
||
|
#ifndef __cplusplus
|
||
|
#error Use C++ compiler for stdiostr.h
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* stdiostream.h -- class stdiobuf and stdiostream declarations
|
||
|
*
|
||
|
* $Id: stdiostr.h,v 1.1.1.1 1997/01/02 19:16:44 smarx Exp $
|
||
|
*
|
||
|
****************************************************************************
|
||
|
*
|
||
|
* Rogue Wave Software, Inc.
|
||
|
* P.O. Box 2328
|
||
|
* Corvallis, OR 97339
|
||
|
* Voice: (503) 754-3010 FAX: (503) 757-6650
|
||
|
*
|
||
|
* Copyright (C) 1991, 1993, 1994.
|
||
|
* This software is subject to copyright protection under the laws of
|
||
|
* the United States and other countries.
|
||
|
* ALL RIGHTS RESERVED
|
||
|
*
|
||
|
***************************************************************************
|
||
|
*
|
||
|
* $Log: stdiostr.h,v $
|
||
|
* Revision 1.1.1.1 1997/01/02 19:16:44 smarx
|
||
|
* cafe12
|
||
|
*
|
||
|
// *
|
||
|
// * 5 2/26/96 8:05a Smarx
|
||
|
*
|
||
|
* Rev 1.3 24 May 1995 15:42:16 Andrew
|
||
|
* Fixed problem where structs/classes were not in pragma pack(__DEFALIGN)
|
||
|
*
|
||
|
* Rev 1.2 08 Oct 1994 14:11:56 BUSHNELL
|
||
|
* Added pragma once for faster compilations
|
||
|
*
|
||
|
* Rev 1.1 02 Jun 1994 21:35:44 bushnell
|
||
|
* added ifdef so that MS RC will not include header twice
|
||
|
*
|
||
|
|
||
|
* Rev 1.0 28 Apr 1994 19:17:46 thompson
|
||
|
|
||
|
* Initial revision.
|
||
|
|
||
|
*
|
||
|
|
||
|
* Rev 1.0 20 Apr 1994 17:46:14 thompson
|
||
|
|
||
|
* Initial revision.
|
||
|
|
||
|
* Revision 1.1 1994/04/14 16:58:12 vriezen
|
||
|
* Initial revision
|
||
|
*
|
||
|
* Revision 1.2 1994/04/14 00:50:17 vriezen
|
||
|
* Updated copywrite, added ID and LOG and changed comments to indicate .cpp filename
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
NOTE: These are inefficient and obsolete. Use the standard classes
|
||
|
and functions in <fstream.h> instead.
|
||
|
*/
|
||
|
|
||
|
|
||
|
#include <iostream.h>
|
||
|
#include <stdio.h>
|
||
|
|
||
|
#pragma pack(__DEFALIGN)
|
||
|
|
||
|
class stdiobuf : public streambuf {
|
||
|
public:
|
||
|
stdiobuf(FILE*);
|
||
|
FILE* stdiofile();
|
||
|
~stdiobuf();
|
||
|
|
||
|
virtual int overflow(int=EOF);
|
||
|
virtual int pbackfail(int);
|
||
|
virtual int sync();
|
||
|
virtual streampos seekoff(streamoff, ios::seek_dir, int);
|
||
|
virtual int underflow();
|
||
|
|
||
|
private:
|
||
|
FILE* sio;
|
||
|
char lahead[2];
|
||
|
};
|
||
|
inline FILE* stdiobuf::stdiofile() { return sio; }
|
||
|
|
||
|
|
||
|
class stdiostream : public ios {
|
||
|
public:
|
||
|
stdiostream(FILE*);
|
||
|
~stdiostream();
|
||
|
stdiobuf* rdbuf();
|
||
|
|
||
|
private:
|
||
|
stdiobuf buf;
|
||
|
};
|
||
|
inline stdiobuf* stdiostream::rdbuf() { return &buf; }
|
||
|
|
||
|
#pragma pack()
|
||
|
|
||
|
#endif /* _STDSTREAM_H_ */
|