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

📄 streamb.h

📁 pwlib源码库
💻 H
字号:
//// (c) 2000 Yuriy Govitovskiy,// for Openh323, www.Openh323.org//// Windows CE Port//   // streamb.h - definitions/declarations for the streambuf class//// [Microsoft]// [AT&T C++]//// [Public]#ifdef  __cplusplus#ifndef _INC_STREAMB#define _INC_STREAMB#include <ios.h>        // need ios::seek_dir definition#ifndef NULL#define NULL    0#endif#ifndef EOF#define EOF     (-1)#endiftypedef long streampos, streamoff;class ios;class streambuf {public:    virtual ~streambuf();    inline int in_avail() const;    inline int out_waiting() const;    int sgetc();    int snextc();    int sbumpc();    void stossc();    inline int sputbackc(char);    inline int sputc(int);    inline int sputn(const char *,int);    inline int sgetn(char *,int);    virtual int sync();    virtual streambuf* setbuf(char *, int);    virtual streampos seekoff(streamoff,ios::seek_dir,int =ios::in|ios::out);    virtual streampos seekpos(streampos,int =ios::in|ios::out);    virtual int xsputn(const char *,int);    virtual int xsgetn(char *,int);    virtual int overflow(int =EOF) = 0; // pure virtual function    virtual int underflow() = 0;        // pure virtual function    virtual int pbackfail(int);    void dbp();    void lock() { }    void unlock() { }protected:    streambuf();    streambuf(char *,int);    inline char * base() const;    inline char * ebuf() const;    inline char * pbase() const;    inline char * pptr() const;    inline char * epptr() const;    inline char * eback() const;    inline char * gptr() const;    inline char * egptr() const;    inline int blen() const;    inline void setp(char *,char *);    inline void setg(char *,char *,char *);    inline void pbump(int);    inline void gbump(int);    void setb(char *,char *,int =0);    inline int unbuffered() const;    inline void unbuffered(int);    int allocate();    virtual int doallocate();private:    int _fAlloc;    int _fUnbuf;    int x_lastc;    char * _base;    char * _ebuf;    char * _pbase;    char * _pptr;    char * _epptr;    char * _eback;    char * _gptr;    char * _egptr;};inline int streambuf::in_avail() const { return (gptr()<_egptr) ? (_egptr-gptr()) : 0; }inline int streambuf::out_waiting() const { return (_pptr>=_pbase) ? (_pptr-_pbase) : 0; }inline int streambuf::sputbackc(char _c){ return (_eback<gptr()) ? *(--_gptr)=_c : pbackfail(_c); }inline int streambuf::sputc(int _i){ return (_pptr<_epptr) ? (unsigned char)(*(_pptr++)=(char)_i) : overflow(_i);}inline int streambuf::sputn(const char * _str,int _n) { return xsputn(_str, _n); }inline int streambuf::sgetn(char * _str,int _n) { return xsgetn(_str, _n); }inline char * streambuf::base() const { return _base; }inline char * streambuf::ebuf() const { return _ebuf; }inline int streambuf::blen() const  {return ((_ebuf > _base) ? (_ebuf-_base) : 0); }inline char * streambuf::pbase() const { return _pbase; }inline char * streambuf::pptr() const { return _pptr; }inline char * streambuf::epptr() const { return _epptr; }inline char * streambuf::eback() const { return _eback; }inline char * streambuf::gptr() const { return _gptr; }inline char * streambuf::egptr() const { return _egptr; }inline void streambuf::gbump(int _n) { if (_egptr) _gptr += _n; }inline void streambuf::pbump(int _n) { if (_epptr) _pptr += _n; }inline void streambuf::setg(char * _eb, char * _g, char * _eg) {_eback=_eb; _gptr=_g; _egptr=_eg; x_lastc=EOF; }inline void streambuf::setp(char * _p, char * _ep) {_pptr=_pbase=_p; _epptr=_ep; }inline int streambuf::unbuffered() const { return _fUnbuf; }inline void streambuf::unbuffered(int _f) { _fUnbuf = _f; }#endif  // _INC_STREAMB#endif  /* __cplusplus */

⌨️ 快捷键说明

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