亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
k8久久久一区二区三区| 色偷偷一区二区三区| 国产精品入口麻豆原神| 欧美色视频在线观看| 国产69精品久久久久毛片| 天天av天天翘天天综合网 | 在线亚洲一区二区| 国产精品一区二区在线观看网站| 一片黄亚洲嫩模| 国产婷婷色一区二区三区| 欧美卡1卡2卡| 在线看一区二区| 成人va在线观看| 国产成a人无v码亚洲福利| 青青草精品视频| 亚洲国产精品久久艾草纯爱| 国产欧美日韩精品一区| 日韩你懂的在线播放| 欧美日韩小视频| 在线看不卡av| 色综合天天狠狠| 成人av在线资源网| 粉嫩aⅴ一区二区三区四区| 蜜臀va亚洲va欧美va天堂 | 国产一区二区三区黄视频 | 国内成人自拍视频| 青娱乐精品视频在线| 午夜视频在线观看一区二区| 亚洲自拍都市欧美小说| 亚洲男人的天堂在线aⅴ视频| 国产精品伦一区二区三级视频| 精品动漫一区二区三区在线观看| 91精品国产91热久久久做人人| 欧美天堂亚洲电影院在线播放| 91一区二区三区在线观看| 99免费精品视频| 色综合久久久久综合体| 91免费国产在线| 在线看一区二区| 欧美亚洲国产bt| 欧美日本精品一区二区三区| 欧美日韩精品一二三区| 91超碰这里只有精品国产| 欧美日韩一区二区三区高清| 欧美日韩视频一区二区| 欧美日韩在线直播| 欧美一区二区三区免费观看视频| 制服.丝袜.亚洲.中文.综合| 制服.丝袜.亚洲.中文.综合| 欧美一级理论片| 精品av久久707| 国产精品第一页第二页第三页| 欧美国产日本韩| 亚洲人精品午夜| 久久精品国产**网站演员| 日韩精品一区第一页| 青青草成人在线观看| 国产乱色国产精品免费视频| 高清beeg欧美| 日本国产一区二区| 91精品婷婷国产综合久久性色| 日韩欧美国产午夜精品| 国产亚洲成年网址在线观看| 最新中文字幕一区二区三区| 亚洲一区成人在线| 免费看欧美美女黄的网站| 国产剧情在线观看一区二区| 99在线视频精品| 欧美欧美午夜aⅴ在线观看| 日韩一卡二卡三卡国产欧美| 国产偷国产偷精品高清尤物 | 中文一区二区完整视频在线观看| 亚洲视频一区二区免费在线观看| 亚洲综合一区二区三区| 日韩精品国产精品| 成人久久视频在线观看| 欧美日韩久久一区二区| 国产亚洲美州欧州综合国 | 国产精品1区2区3区| 在线亚洲免费视频| 精品成人在线观看| 日韩久久一区二区| 蜜臀91精品一区二区三区 | 色悠久久久久综合欧美99| 91精品国产综合久久精品性色| 国产偷国产偷精品高清尤物| 一区二区三区不卡视频在线观看| 国产一区二区精品在线观看| 欧美性欧美巨大黑白大战| 26uuu亚洲| 午夜私人影院久久久久| 不卡一区中文字幕| 日韩一区二区免费电影| 亚洲天天做日日做天天谢日日欢| 蜜桃视频一区二区| 在线视频欧美精品| 国产欧美视频在线观看| 日本不卡一区二区三区高清视频| caoporn国产精品| 久久免费看少妇高潮| 亚洲6080在线| 色哟哟一区二区在线观看 | 蜜桃视频在线观看一区二区| 91社区在线播放| 久久精品一二三| 蜜桃一区二区三区四区| 欧美三级三级三级爽爽爽| 中文字幕第一区综合| 九九国产精品视频| 在线综合+亚洲+欧美中文字幕| 亚洲美女区一区| 国产ts人妖一区二区| 欧美xxx久久| 青青草国产精品亚洲专区无| 欧美日本在线看| 一区二区三区成人在线视频| 99精品久久免费看蜜臀剧情介绍| 久久久精品天堂| 精品一区二区在线看| 欧美一二三区在线观看| 亚洲成人av资源| 欧美日韩亚洲综合在线| 一区二区高清视频在线观看| 91免费观看视频| 国产精品欧美一区二区三区| 国产成人午夜精品影院观看视频| 精品国产亚洲一区二区三区在线观看| 日日夜夜一区二区| 91精品婷婷国产综合久久竹菊| 亚洲va天堂va国产va久| 欧美三级蜜桃2在线观看| 一区二区三区中文字幕精品精品 | 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 日韩 欧美一区二区三区| 欧美艳星brazzers| 亚欧色一区w666天堂| 欧美日韩在线播放一区| 亚洲福利视频一区| 69成人精品免费视频| 天堂va蜜桃一区二区三区| 91.麻豆视频| 韩国三级在线一区| 欧美激情资源网| 91玉足脚交白嫩脚丫在线播放| 亚洲免费在线电影| 欧美日韩国产首页在线观看| 日本欧美加勒比视频| 2021久久国产精品不只是精品| 国产精品456| 亚洲色欲色欲www| 色欧美片视频在线观看在线视频| 亚洲女厕所小便bbb| 欧美人伦禁忌dvd放荡欲情| 蜜桃视频一区二区| 久久久综合激的五月天| 99久久精品免费精品国产| 亚洲制服丝袜在线| 精品日韩99亚洲| 不卡一区在线观看| 亚洲午夜精品在线| 欧美一区二区三区在线视频| 国产一区二区不卡老阿姨| 亚洲色图一区二区三区| 91精品国产综合久久精品图片| 国产精选一区二区三区| 亚洲同性gay激情无套| 欧美精品乱码久久久久久| 国产综合色在线| 综合欧美亚洲日本| 3751色影院一区二区三区| 国产精品系列在线播放| 亚洲品质自拍视频| 日韩欧美一区二区三区在线| 成人av先锋影音| 日韩在线一区二区三区| 亚洲国产成人在线| 在线播放欧美女士性生活| 国产中文字幕一区| 一区二区免费视频| 久久日韩粉嫩一区二区三区| 欧洲国内综合视频| 国产成人免费高清| 视频一区视频二区中文| 国产精品久久久久婷婷二区次 | 国产精品美女一区二区三区| 欧美日韩国产中文| 成人丝袜高跟foot| 午夜精品影院在线观看| 国产亚洲精品资源在线26u| 欧美日韩一本到| 成人性色生活片免费看爆迷你毛片| 亚洲第一电影网| 中文字幕不卡的av| 精品国产一区二区三区av性色 | 欧美久久一二区| 国产69精品一区二区亚洲孕妇| 免费观看91视频大全| 一区二区三区在线影院| 国产亚洲欧美激情| 精品欧美久久久|