diff options
Diffstat (limited to 'contrib/libg++/libio/strstream.h')
-rw-r--r-- | contrib/libg++/libio/strstream.h | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/contrib/libg++/libio/strstream.h b/contrib/libg++/libio/strstream.h deleted file mode 100644 index d549b4547588..000000000000 --- a/contrib/libg++/libio/strstream.h +++ /dev/null @@ -1,113 +0,0 @@ -/* This is part of libio/iostream, providing -*- C++ -*- input/output. -Copyright (C) 1993 Free Software Foundation - -This file is part of the GNU IO Library. This library is free -software; you can redistribute it and/or modify it under the -terms of the GNU General Public License as published by the -Free Software Foundation; either version 2, or (at your option) -any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this library; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -As a special exception, if you link this library with files -compiled with a GNU compiler to produce an executable, this does not cause -the resulting executable to be covered by the GNU General Public License. -This exception does not however invalidate any other reasons why -the executable file might be covered by the GNU General Public License. */ - -/* Written by Per Bothner (bothner@cygnus.com). */ - -#ifndef __STRSTREAM_H -#define __STRSTREAM_H -#ifdef __GNUG__ -#pragma interface -#endif -#include <iostream.h> -#include <strfile.h> - -extern "C++" { -class strstreambuf : public streambuf -{ - struct _IO_str_fields _s; - friend class istrstream; - - void init_dynamic(_IO_alloc_type alloc, _IO_free_type free, - int initial_size = 0); - void init_static(char *ptr, int size, char *pstart); - void init_readonly(const char *ptr, int size); - protected: - virtual int overflow(int = EOF); - virtual int underflow(); - virtual int pbackfail(int c); - public: - virtual ~strstreambuf(); - strstreambuf() { init_dynamic(0, 0); } - strstreambuf(int initial_size) { init_dynamic(0, 0, initial_size); } - strstreambuf(void *(*alloc)(_IO_size_t), void (*free)(void*)) - { init_dynamic(alloc, free); } - strstreambuf(char *ptr, int size, char *pstart = NULL) - { init_static(ptr, size, pstart); } - strstreambuf(unsigned char *ptr, int size, unsigned char *pstart = NULL) - { init_static((char*)ptr, size, (char*)pstart); } - strstreambuf(const char *ptr, int size) - { init_readonly(ptr, size); } - strstreambuf(const unsigned char *ptr, int size) - { init_readonly((const char*)ptr, size); } - strstreambuf(signed char *ptr, int size, signed char *pstart = NULL) - { init_static((char*)ptr, size, (char*)pstart); } - strstreambuf(const signed char *ptr, int size) - { init_readonly((const char*)ptr, size); } - // Note: frozen() is always true if !_IO_STR_DYNAMIC(this). - int frozen() { return _flags & _IO_USER_BUF ? 1 : 0; } - void freeze(int n=1) - { if (_IO_STR_DYNAMIC(this)) - { if (n) _flags |= _IO_USER_BUF; else _flags &= ~_IO_USER_BUF; } } - _IO_ssize_t pcount(); - char *str(); - virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); -}; - -class strstreambase : virtual public ios { - protected: - strstreambuf __my_sb; - public: - strstreambuf* rdbuf() { return &__my_sb; } - protected: - strstreambase() { init (&__my_sb); } - strstreambase(char *cp, int n, int mode=ios::out); -}; - -class istrstream : public strstreambase, public istream { - public: - istrstream(const char*, int=0); -}; - -class ostrstream : public strstreambase, public ostream { - public: - ostrstream() { } - ostrstream(char *cp, int n, int mode=ios::out) :strstreambase(cp,n,mode){} - _IO_ssize_t pcount() { return ((strstreambuf*)_strbuf)->pcount(); } - char *str() { return ((strstreambuf*)_strbuf)->str(); } - void freeze(int n = 1) { ((strstreambuf*)_strbuf)->freeze(n); } - int frozen() { return ((strstreambuf*)_strbuf)->frozen(); } -}; - -class strstream : public strstreambase, public iostream { - public: - strstream() { } - strstream(char *cp, int n, int mode=ios::out) :strstreambase(cp,n,mode){} - _IO_ssize_t pcount() { return ((strstreambuf*)_strbuf)->pcount(); } - char *str() { return ((strstreambuf*)_strbuf)->str(); } - void freeze(int n = 1) { ((strstreambuf*)_strbuf)->freeze(n); } - int frozen() { return ((strstreambuf*)_strbuf)->frozen(); } -}; -} // extern "C++" - -#endif /*!__STRSTREAM_H*/ |