亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pstreams.h

?? PTypes (C++ Portable Types Library) is a simple alternative to the STL that includes multithreading
?? H
?? 第 1 頁 / 共 2 頁
字號:
/* * *  C++ Portable Types Library (PTypes) *  Version 1.7.5   Released 9-Mar-2003 * *  Copyright (c) 2001, 2002, 2003 Hovik Melikyan * *  http://www.melikyan.com/ptypes/ *  http://ptypes.sourceforge.net/ * */#ifndef __PSTREAMS_H__#define __PSTREAMS_H__#ifndef __PPORT_H__#include "pport.h"#endif#ifndef __PTYPES_H__#include "ptypes.h"#endif#include <stdarg.h>#include <errno.h>#ifdef WIN32#  define _WINSOCKAPI_   // prevent inclusion of winsock.h, because we need winsock2.h#  include "windows.h"   // for OVERLAPPED#endifPTYPES_BEGIN#ifdef _MSC_VER#pragma pack(push, 4)#endif// -------------------------------------------------------------------- //// ---  abstract stream i/o classes ----------------------------------- //// -------------------------------------------------------------------- ////// stream exception class//class iobase;class ptpublic estream: public exceptobj {protected:    int code;    iobase* errstm;public:    estream(iobase* ierrstm, int icode, const char* imsg);    estream(iobase* ierrstm, int icode, const string& imsg);    virtual ~estream();    int get_code()          { return code; }    iobase* get_errstm()    { return errstm; }};typedef void (*iostatusevent)(iobase* sender, int code);ptpublic int unixerrno();ptpublic const char* unixerrmsg(int code);// status codes: compatible with WinInet API// additional status codes are defined in pinet.h for ipsocketconst int IO_CREATED = 1;const int IO_OPENING = 5;const int IO_OPENED = 35;const int IO_READING = 37;const int IO_WRITING = 38;const int IO_EOF = 45;const int IO_CLOSING = 250;const int IO_CLOSED = 253;//// iobase//enum ioseekmode {    IO_BEGIN,    IO_CURRENT,    IO_END};const int invhandle = -1;class ptpublic iobase: public component {    friend class fdxoutstm;protected:    bool    active;         // active status, changed by open() and close()    bool    cancelled;      // the stream was cancelled by cancel()    bool    eof;            // end of file reached, only for input streams    int     handle;         // used in many derivative classes    int     abspos;         // physical stream position    int     bufsize;        // buffer size, can be changed only when not active    char*   bufdata;        // internal: allocated buffer data    int     bufpos;         // internal: current position    int     bufend;         // internal: current data size in the buffer    int     stmerrno;       // UNIX-compatible error numbers, see comments in piobase.cxx    string  deferrormsg;    // internal: default error message when an exception is thrown,    int     status;         // stream status code, see IO_xxx constants above    iostatusevent onstatus; // user-defined status change handler    virtual void bufalloc();    virtual void buffree();    void bufclear() { bufpos = 0; bufend = 0; }    void errstminactive();    void errbufrequired();    virtual void doopen() = 0;    virtual void doclose();    virtual int  doseek(int newpos, ioseekmode mode);    virtual void chstat(int newstat);    virtual int uerrno();    virtual const char* uerrmsg(int code);public:    iobase(int ibufsize = -1);    virtual ~iobase();    void open();    void close();    void cancel();    int  seek(int newpos, ioseekmode mode = IO_BEGIN);    void error(int code, const char* defmsg);    virtual void flush();    virtual string get_errormsg();    virtual string get_errstmname();    virtual string get_streamname() = 0;    bool get_active()                               { return active; }    void set_active(bool newval);    bool get_cancelled()                            { return cancelled; }    void set_cancelled(bool newval)                 { cancelled = newval; }    int  get_handle()                               { return handle; }    int  get_bufsize()                              { return bufsize; }    void set_bufsize(int newval);    int  get_stmerrno()                             { return stmerrno; }    int  get_status()                               { return status; }    iostatusevent get_onstatus()                    { return onstatus; }    void set_onstatus(iostatusevent newval)         { onstatus = newval; }};typedef iobase* piobase;ptpublic extern int defbufsize;ptpublic extern int stmbalance;//// instm - abstract input stream//const char eofchar = 0;class ptpublic instm: public iobase {protected:    virtual int dorawread(char* buf, int count);    int rawread(char* buf, int count);    virtual void bufvalidate();    void skipeol();public:    instm(int ibufsize = -1);    virtual ~instm();    virtual int classid();    bool get_eof();    void set_eof(bool ieof)  { eof = ieof; }    bool get_eol();    int  get_dataavail();    char preview();    char get();    void putback();    string token(const cset& chars);    string token(const cset& chars, int limit);    int token(const cset& chars, char* buf, int size);    string line();    string line(int limit);    int line(char* buf, int size, bool eateol = true);    int read(void* buf, int count);    int skip(int count);    int skiptoken(const cset& chars);    void skipline(bool eateol = true);    int tell();    int seek(int newpos, ioseekmode mode = IO_BEGIN);};typedef instm* pinstm;//// outstm - abstract output stream//class ptpublic outstm: public iobase {protected:    bool flusheol;    virtual int dorawwrite(const char* buf, int count);    int rawwrite(const char* buf, int count);    virtual void bufvalidate();    void bufadvance(int delta)          { bufpos += delta; if (bufend < bufpos) bufend = bufpos; }    bool canwrite();public:    outstm(bool iflusheol = false, int ibufsize = -1);    virtual ~outstm();    virtual int classid();    bool get_flusheol()             { return flusheol; }    void set_flusheol(bool newval)  { flusheol = newval; }    virtual void flush();    bool get_eof()                  { return eof; }    void put(char c);    void put(const char* str);    void put(const string& str);    void vputf(const char* fmt, va_list);    void putf(const char* fmt, ...);    void putline(const char* str);    void putline(const string& str);    void puteol();    int  write(const void* buf, int count);    int  tell()                      { return abspos + bufpos; }    int  seek(int newpos, ioseekmode mode = IO_BEGIN);};typedef outstm* poutstm;//// internal class used in fdxstm//class ptpublic fdxoutstm: public outstm{    friend class fdxstm;protected:    fdxstm* in;    virtual void chstat(int newstat);    virtual int uerrno();    virtual const char* uerrmsg(int code);    virtual void doopen();    virtual void doclose();    virtual int dorawwrite(const char* buf, int count);public:    fdxoutstm(int ibufsize, fdxstm* iin);    virtual ~fdxoutstm();    virtual string get_streamname();};typedef fdxstm* pfdxstm;//// fdxstm: abstract full-duplex stream (for sockets and pipes)//class ptpublic fdxstm: public instm{    friend class fdxoutstm;protected:    fdxoutstm out;    virtual int dorawwrite(const char* buf, int count);public:    fdxstm(int ibufsize = -1);    virtual ~fdxstm();    void set_bufsize(int newval);       // sets both input and output buffer sizes    void open();            // rewritten to pass the call to the output stream too    void close();    void cancel();    virtual void flush();    int tell(bool);         // true for input and false for output    // output interface: pretend this class is derived both    // from instm and outstm. actually we can't use multiple    // inheritance here, since this is a full-duplex stream,    // hence everything must be duplicated for input and output    void putf(const char* fmt, ...);    void put(char c)                        { out.put(c); }    void put(const char* str)               { out.put(str); }    void put(const string& str)             { out.put(str); }    void putline(const char* str)           { out.putline(str); }    void putline(const string& str)         { out.putline(str); }    void puteol()                           { out.puteol(); }    int  write(const void* buf, int count)  { return out.write(buf, count); }    bool get_flusheol()                     { return out.get_flusheol(); }    void set_flusheol(bool newval)          { out.set_flusheol(newval); }    operator outstm&()			    { return out; }};//// abstract input filter class//class ptpublic infilter: public instm {protected:    instm*   stm;    char*    savebuf;    int      savecount;    string   postponed;    void copytobuf(string& s);    void copytobuf(pconst& buf, int& count);    bool copytobuf(char c);    virtual void freenotify(component* sender);    virtual void doopen();    virtual void doclose();    virtual int  dorawread(char* buf, int count);    virtual void dofilter() = 0;    bool bufavail()  { return savecount > 0; }    void post(const char* buf, int count);    void post(const char* s);    void post(char c);    virtual void post(string s);public:    infilter(instm* istm, int ibufsize = -1);    virtual ~infilter();    virtual string get_errstmname();    instm* get_stm()  { return stm; }    void set_stm(instm* stm);};//// abstract output filter class//class ptpublic outfilter: public outstm{protected:    outstm* stm;    virtual void freenotify(component* sender);    virtual void doopen();    virtual void doclose();public:    outfilter(outstm* istm, int ibufsize = -1);    virtual ~outfilter();    virtual string get_errstmname();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精选视频免费看| 欧美性一二三区| 国产色91在线| 成人av电影免费在线播放| 国产精品美女久久福利网站| 成人免费视频国产在线观看| 国产精品视频免费看| 色域天天综合网| 日本成人中文字幕在线视频| 精品国产精品网麻豆系列| 国产精品综合二区| 亚洲人午夜精品天堂一二香蕉| 91亚洲国产成人精品一区二三| 一区二区国产盗摄色噜噜| 欧美日韩一区二区在线观看视频 | 91精品啪在线观看国产60岁| 日本午夜精品一区二区三区电影| 欧美一级理论片| 极品少妇一区二区| 中文字幕在线一区免费| 欧美自拍偷拍午夜视频| 免费成人在线播放| 中文字幕亚洲在| 欧美一级一区二区| 不卡高清视频专区| 视频在线在亚洲| 国产欧美一区二区三区网站| 欧美在线小视频| 国产乱码精品1区2区3区| 自拍av一区二区三区| 欧美一区二区在线免费播放| 国产精品亚洲а∨天堂免在线| 亚洲黄色小视频| www日韩大片| 欧美男男青年gay1069videost | 亚洲成在人线免费| 欧美一区二区三区播放老司机| 蜜臀精品久久久久久蜜臀| 国产拍揄自揄精品视频麻豆| 欧美视频一区二区| 成人h版在线观看| 裸体健美xxxx欧美裸体表演| 亚洲欧美一区二区三区极速播放| 9191成人精品久久| 91农村精品一区二区在线| 精品一区二区久久久| 亚洲国产日产av| 亚洲少妇最新在线视频| 久久这里只有精品视频网| 欧美日韩中文精品| 色香蕉久久蜜桃| 粉嫩av一区二区三区在线播放 | 亚洲精品一区二区精华| 欧洲视频一区二区| 91丨九色丨蝌蚪富婆spa| 国产精品一卡二卡| 久久se精品一区精品二区| 亚洲成av人在线观看| 亚洲人妖av一区二区| 国产日韩欧美不卡| 久久久久久亚洲综合| 日韩欧美一级片| 日韩你懂的在线播放| 欧美精品在线观看播放| 91成人看片片| 在线观看日韩一区| 色琪琪一区二区三区亚洲区| 成人毛片老司机大片| 国产成人综合自拍| 国产成人啪午夜精品网站男同| 久久99久久99| 国产一区二区三区av电影| 老司机午夜精品99久久| 视频在线观看一区| 美腿丝袜在线亚洲一区| 日本在线不卡一区| 美女视频黄久久| 国产一区二区视频在线| 国内成人精品2018免费看| 精品一区二区在线看| 国产一区二区精品久久| 国产精品一区一区三区| 国产精品18久久久久| 大胆欧美人体老妇| 91麻豆福利精品推荐| 91福利资源站| 欧美顶级少妇做爰| 精品电影一区二区三区| 久久久亚洲综合| 国产精品五月天| 亚洲美女精品一区| 亚洲成人自拍一区| 麻豆成人在线观看| 国产精品系列在线观看| 成人精品gif动图一区| 99re这里只有精品首页| 在线观看免费成人| 欧美一级欧美三级| 国产丝袜美腿一区二区三区| 国产精品视频九色porn| 一区二区三区日韩欧美| 视频一区二区中文字幕| 色婷婷av一区二区三区软件| 欧洲另类一二三四区| 日韩精品中文字幕一区二区三区| 国产亚洲综合在线| 亚洲色图制服丝袜| 蜜桃一区二区三区在线观看| 国产成人在线视频免费播放| 91在线看国产| 欧美一级二级三级乱码| 久久精品在这里| 亚洲va欧美va人人爽午夜| 九色综合国产一区二区三区| 成人午夜免费电影| 欧美高清性hdvideosex| 国产日产欧美一区二区三区| 亚洲一区免费在线观看| 久久机这里只有精品| 99精品欧美一区二区三区小说| 欧美卡1卡2卡| 国产精品不卡一区| 久久97超碰国产精品超碰| 99视频在线精品| 精品国产伦一区二区三区免费| 亚洲毛片av在线| 国产99久久久久久免费看农村| 欧美午夜精品一区二区三区 | 欧美精彩视频一区二区三区| 一区二区三区在线看| 国产一区二区三区蝌蚪| 欧美三级中文字| 国产精品久久久久精k8| 极品少妇xxxx精品少妇偷拍| 欧美亚洲国产一区在线观看网站| 久久精品亚洲一区二区三区浴池| 亚洲bdsm女犯bdsm网站| www.综合网.com| 久久伊人中文字幕| 日本欧美肥老太交大片| 在线一区二区三区做爰视频网站| 国产三级久久久| 蜜桃久久精品一区二区| 日本高清不卡视频| 中文字幕亚洲综合久久菠萝蜜| 狠狠色丁香久久婷婷综合丁香| 欧美色区777第一页| 综合精品久久久| 成人午夜电影小说| 亚洲精品在线三区| 美洲天堂一区二卡三卡四卡视频| 欧美日高清视频| 亚洲一区中文日韩| 色狠狠色狠狠综合| 亚洲欧美激情视频在线观看一区二区三区| 国产乱理伦片在线观看夜一区| 欧美一区二区三级| 免费成人在线影院| 欧美一区二区在线免费播放 | 免费人成黄页网站在线一区二区 | 丝袜亚洲精品中文字幕一区| 色综合天天性综合| 亚洲乱码中文字幕| 色天天综合久久久久综合片| 中文字幕在线免费不卡| 成人精品国产一区二区4080| 日本一二三四高清不卡| 国产**成人网毛片九色| 中文字幕不卡的av| 99精品在线观看视频| 日韩理论片中文av| 在线中文字幕一区二区| 一区二区三区精品视频在线| 不卡av电影在线播放| 中文字幕av资源一区| 99麻豆久久久国产精品免费| 亚洲欧美偷拍另类a∨色屁股| 色一情一乱一乱一91av| 亚洲第一激情av| 日韩午夜小视频| 国产在线精品不卡| 国产免费成人在线视频| 成人中文字幕在线| 亚洲美女免费视频| 91麻豆精品国产91| 激情丁香综合五月| 国产精品国产自产拍高清av| 97久久精品人人澡人人爽| 亚洲一区在线电影| 精品国产污污免费网站入口| 国产乱妇无码大片在线观看| 国产精品福利av| 777xxx欧美| 国产激情精品久久久第一区二区| 国产精品你懂的在线欣赏| 色婷婷亚洲精品| 久久精品国产99| 亚洲激情在线播放| 亚洲精品在线观看视频| 9久草视频在线视频精品|