⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 indstream.h

📁 早期freebsd实现
💻 H
字号:
//    This is part of the iostream library, providing -*- C++ -*- input/output.//    Copyright (C) 1992 Per Bothner.////    This library is free software; you can redistribute it and/or//    modify it under the terms of the GNU Library General Public//    License as published by the Free Software Foundation; either//    version 2 of the License, 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//    Library General Public License for more details.////    You should have received a copy of the GNU Library General Public//    License along with this library; if not, write to the Free//    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.#ifndef _INDSTREAM_H#define _INDSTREAM_H#ifdef __GNUG__#pragma interface#endif#include <iostream.h>// An indirectbuf is one that forwards all of its I/O requests// to another streambuf.// All get-related requests are sent to get_stream().// All put-related requests are sent to put_stream().// An indirectbuf can be used to implement Common Lisp// synonym-streams and two-way-streams.//// class synonymbuf : public indirectbuf {//    Symbol *sym;//    synonymbuf(Symbol *s) { sym = s; }//    virtual streambuf *lookup_stream(int mode) {//        return coerce_to_streambuf(lookup_value(sym)); }// };class indirectbuf : public streambuf {  protected:    streambuf *_get_stream;  // Optional cache for get_stream().    streambuf *_put_stream;  // Optional cache for put_stream().    int _delete_flags;  public:    streambuf *get_stream()	{ return _get_stream ? _get_stream : lookup_stream(ios::in); }    streambuf *put_stream()	{ return _put_stream ? _put_stream : lookup_stream(ios::out); }    virtual streambuf *lookup_stream(int mode) { return NULL; } // ERROR!    indirectbuf(streambuf *get=NULL, streambuf *put=NULL, int delete_mode=0);    virtual ~indirectbuf();    virtual int xsputn(const char* s, int n);    virtual int xsgetn(char* s, int n);    virtual int underflow();    virtual int overflow(int c = EOF);    virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out);    virtual streampos seekpos(streampos pos, int mode = ios::in|ios::out);    virtual int sync();    virtual int pbackfail(int c);};#endif /* !_INDSTREAM_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -