diff options
Diffstat (limited to 'src/stdio_streambuf.h')
-rw-r--r-- | src/stdio_streambuf.h | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/src/stdio_streambuf.h b/src/stdio_streambuf.h deleted file mode 100644 index 33747b5..0000000 --- a/src/stdio_streambuf.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -// This header defines two streambufs: -// stdio_istreambuf, a read-only streambuf synchronized with a C stdio -// FILE object -// stdio_ostreambuf, a write-only streambuf synchronized with a C stdio -// FILE object. -// Note that neither stdio_istreambuf nor stdio_ostreambuf is a template; -// both classes are derived from basic_streambuf<char, char_traits<char> >. - -// Note: the imbue() member function is a no-op. In particular, these -// classes assume that codecvt<char, char, mbstate_t> is always an identity -// transformation. This is true of the default locale, and of all locales -// defined for the C I/O library. If you need to use a locale where -// the codecvt<char, char, mbstate_t> facet performs a nontrivial -// conversion, then you should use basic_filebuf<> instead of stdio_istreambuf -// or stdio_ostreambuf. (If you don't understand what any of this means, -// then it's not a feature you need to worry about. Locales where -// codecvt<char, char, mbstate_t> does something nontrivial are a rare -// corner case.) - - -#ifndef _STLP_STDIO_STREAMBUF -#define _STLP_STDIO_STREAMBUF - -#include <streambuf> -#include <cstdio> // For FILE. - -_STLP_BEGIN_NAMESPACE -_STLP_MOVE_TO_PRIV_NAMESPACE - -// Base class for features common to stdio_istreambuf and stdio_ostreambuf -class stdio_streambuf_base : - public basic_streambuf<char, char_traits<char> > /* FILE_basic_streambuf */ { -public: // Constructor, destructor. - // The argument may not be null. It must be an open file pointer. - stdio_streambuf_base(FILE*); - - // The destructor flushes the stream, but does not close it. - ~stdio_streambuf_base(); - -protected: // Virtual functions from basic_streambuf. - streambuf* setbuf(char*, streamsize); - - pos_type seekoff(off_type, ios_base::seekdir, - ios_base::openmode - = ios_base::in | ios_base::out); - pos_type seekpos(pos_type, - ios_base::openmode - = ios_base::in | ios_base::out); - int sync(); - -protected: - FILE* _M_file; -}; - -class stdio_istreambuf : public stdio_streambuf_base { -public: // Constructor, destructor. - stdio_istreambuf(FILE* __f) : stdio_streambuf_base(__f) {} - ~stdio_istreambuf(); - -protected: // Virtual functions from basic_streambuf. - streamsize showmanyc(); - int_type underflow(); - int_type uflow(); - virtual int_type pbackfail(int_type c = traits_type::eof()); -}; - -class stdio_ostreambuf : public stdio_streambuf_base { -public: // Constructor, destructor. - stdio_ostreambuf(FILE* __f) : stdio_streambuf_base(__f) {} - ~stdio_ostreambuf(); - -protected: // Virtual functions from basic_streambuf. - streamsize showmanyc(); - int_type overflow(int_type c = traits_type::eof()); -}; - -_STLP_MOVE_TO_STD_NAMESPACE -_STLP_END_NAMESPACE - -#endif /* _STLP_STDIO_STREAMBUF */ - -// Local Variables: -// mode:C++ -// End: |