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

📄 pstreams.h.html

📁 PTypes是一个扩充了多线程和网络功能的STL库
💻 HTML
📖 第 1 页 / 共 4 页
字号:
    <font CLASS=keyword>virtual</font> <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* uerrmsg(<font CLASS=keytype>int</font> code);<font CLASS=preproc><font CLASS=keyword>public</font>:</font>    iobase(<font CLASS=keytype>int</font> ibufsize <font CLASS=symbols>=</font> <font CLASS=symbols>-</font><font CLASS=integer>1</font>);    <font CLASS=keyword>virtual</font> ~iobase();    <font CLASS=keytype>void</font> open();    <font CLASS=keytype>void</font> close();    <font CLASS=keytype>void</font> cancel();    <font CLASS=keytype>void</font> reopen()                                   { open(); }    <font CLASS=keytype>int</font>  seek(<font CLASS=keytype>int</font> newpos, ioseekmode mode <font CLASS=symbols>=</font> IO_BEGIN);    <font CLASS=keytype>void</font> error(<font CLASS=keytype>int</font> code, <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* defmsg);    <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> flush();    <font CLASS=keyword>virtual</font> string get_errormsg();    <font CLASS=keyword>virtual</font> string get_errstmname();    <font CLASS=keyword>virtual</font> string get_streamname() <font CLASS=symbols>=</font> <font CLASS=integer>0</font>;    <font CLASS=keytype>bool</font> get_active()                               { <font CLASS=keyword>return</font> active; }    <font CLASS=keytype>void</font> set_active(<font CLASS=keytype>bool</font> newval);    <font CLASS=keytype>bool</font> get_cancelled()                            { <font CLASS=keyword>return</font> cancelled; }    <font CLASS=keytype>void</font> set_cancelled(<font CLASS=keytype>bool</font> newval)                 { cancelled <font CLASS=symbols>=</font> newval; }    <font CLASS=keytype>int</font>  get_handle()                               { <font CLASS=keyword>return</font> handle; }    <font CLASS=keytype>int</font>  get_bufsize()                              { <font CLASS=keyword>return</font> bufsize; }    <font CLASS=keytype>void</font> set_bufsize(<font CLASS=keytype>int</font> newval);    <font CLASS=keytype>int</font>  get_stmerrno()                             { <font CLASS=keyword>return</font> stmerrno; }    <font CLASS=keytype>int</font>  get_status()                               { <font CLASS=keyword>return</font> status; }    iostatusevent get_onstatus()                    { <font CLASS=keyword>return</font> onstatus; }    <font CLASS=keytype>void</font> set_onstatus(iostatusevent newval)         { onstatus <font CLASS=symbols>=</font> newval; }};<font CLASS=keyword>typedef</font> iobase* piobase;<font CLASS=keyword>extern</font> <font CLASS=keytype>int</font> defbufsize;<font CLASS=keyword>extern</font> <font CLASS=keytype>int</font> stmbalance;<font CLASS=comment>//</font><font CLASS=comment>// instm - abstract input stream</font><font CLASS=comment>//</font><font CLASS=keyword>const</font> <font CLASS=keytype>char</font> eofchar <font CLASS=symbols>=</font> <font CLASS=integer>0</font>;<font CLASS=keyword>class</font> instm: public iobase {<font CLASS=preproc><font CLASS=keyword>protected</font>:</font>    <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font> dorawread(<font CLASS=keytype>char</font>* buf, <font CLASS=keytype>int</font> count);    <font CLASS=keytype>int</font> rawread(<font CLASS=keytype>char</font>* buf, <font CLASS=keytype>int</font> count);    <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> bufvalidate();    <font CLASS=keytype>void</font> skipeol();<font CLASS=preproc><font CLASS=keyword>public</font>:</font>    instm(<font CLASS=keytype>int</font> ibufsize <font CLASS=symbols>=</font> <font CLASS=symbols>-</font><font CLASS=integer>1</font>);    <font CLASS=keyword>virtual</font> ~instm();    <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font> classid();    <font CLASS=keytype>bool</font> get_eof();    <font CLASS=keytype>void</font> set_eof(<font CLASS=keytype>bool</font> ieof)     { eof <font CLASS=symbols>=</font> ieof; }    <font CLASS=keytype>bool</font> get_eol();    <font CLASS=keytype>int</font>  get_dataavail();    <font CLASS=keytype>char</font> preview();    <font CLASS=keytype>char</font> get();    <font CLASS=keytype>void</font> putback();    string token(<font CLASS=keyword>const</font> cset&amp; chars);    string token(<font CLASS=keyword>const</font> cset&amp; chars, <font CLASS=keytype>int</font> limit);    <font CLASS=keytype>int</font> token(<font CLASS=keyword>const</font> cset&amp; chars, char* buf, <font CLASS=keytype>int</font> size);    string line();    string line(<font CLASS=keytype>int</font> limit);    <font CLASS=keytype>int</font> line(<font CLASS=keytype>char</font>* buf, <font CLASS=keytype>int</font> size, <font CLASS=keytype>bool</font> eateol <font CLASS=symbols>=</font> <font CLASS=keyword>true</font>);    <font CLASS=keytype>int</font> read(<font CLASS=keytype>void</font>* buf, <font CLASS=keytype>int</font> count);    <font CLASS=keytype>int</font> skip(<font CLASS=keytype>int</font> count);    <font CLASS=keytype>int</font> skiptoken(<font CLASS=keyword>const</font> cset&amp; chars);    <font CLASS=keytype>void</font> skipline(<font CLASS=keytype>bool</font> eateol <font CLASS=symbols>=</font> <font CLASS=keyword>true</font>);    <font CLASS=keytype>int</font> tell();    <font CLASS=keytype>int</font> seek(<font CLASS=keytype>int</font> newpos, ioseekmode mode <font CLASS=symbols>=</font> IO_BEGIN);};<font CLASS=keyword>typedef</font> instm* pinstm;<font CLASS=comment>//</font><font CLASS=comment>// outstm - abstract output stream</font><font CLASS=comment>//</font><font CLASS=keyword>class</font> outstm: public iobase {<font CLASS=preproc><font CLASS=keyword>protected</font>:</font>    <font CLASS=keytype>bool</font> flusheol;    <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font> dorawwrite(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* buf, <font CLASS=keytype>int</font> count);    <font CLASS=keytype>int</font> rawwrite(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* buf, <font CLASS=keytype>int</font> count);    <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> bufvalidate();    <font CLASS=keytype>void</font> bufadvance(<font CLASS=keytype>int</font> delta)          { bufpos <font CLASS=symbols>+=</font> delta; <font CLASS=keyword>if</font> (bufend &lt; bufpos) bufend <font CLASS=symbols>=</font> bufpos; }    <font CLASS=keytype>bool</font> canwrite();<font CLASS=preproc><font CLASS=keyword>public</font>:</font>    outstm(<font CLASS=keytype>bool</font> iflusheol <font CLASS=symbols>=</font> <font CLASS=keyword>false</font>, <font CLASS=keytype>int</font> ibufsize <font CLASS=symbols>=</font> -<font CLASS=integer>1</font>);    <font CLASS=keyword>virtual</font> ~outstm();    <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font> classid();    <font CLASS=keytype>bool</font> get_flusheol()             { <font CLASS=keyword>return</font> flusheol; }    <font CLASS=keytype>void</font> set_flusheol(<font CLASS=keytype>bool</font> newval)  { flusheol <font CLASS=symbols>=</font> newval; }    <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> flush();    <font CLASS=keytype>bool</font> get_eof()                  { <font CLASS=keyword>return</font> eof; }    <font CLASS=keytype>void</font> put(<font CLASS=keytype>char</font> c);    <font CLASS=keytype>void</font> put(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* str);    <font CLASS=keytype>void</font> put(<font CLASS=keyword>const</font> string&amp; str);    <font CLASS=keytype>void</font> vputf(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* fmt, va_list);    <font CLASS=keytype>void</font> putf(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* fmt, ...);    <font CLASS=keytype>void</font> putline(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* str);    <font CLASS=keytype>void</font> putline(<font CLASS=keyword>const</font> string&amp; str);    <font CLASS=keytype>void</font> puteol();    <font CLASS=keytype>int</font>  write(<font CLASS=keyword>const</font> <font CLASS=keytype>void</font>* buf, <font CLASS=keytype>int</font> count);    <font CLASS=keytype>int</font>  tell()                      { <font CLASS=keyword>return</font> abspos <font CLASS=symbols>+</font> bufpos; }    <font CLASS=keytype>int</font>  seek(<font CLASS=keytype>int</font> newpos, ioseekmode mode <font CLASS=symbols>=</font> IO_BEGIN);};<font CLASS=keyword>typedef</font> outstm* poutstm;<font CLASS=comment>// %t and %T formats</font><font CLASS=keyword>extern</font> <font CLASS=keytype>char</font>* shorttimefmt;  <font CLASS=comment>// "%d-%b-%Y %X"</font><font CLASS=keyword>extern</font> <font CLASS=keytype>char</font>* longtimefmt;   <font CLASS=comment>// "%a %b %d %X %Y"</font><font CLASS=comment>//</font><font CLASS=comment>// internal class used in fdxstm</font><font CLASS=comment>//</font><font CLASS=keyword>class</font> fdxoutstm: public outstm{    <font CLASS=keyword>friend</font> <font CLASS=keyword>class</font> fdxstm;<font CLASS=preproc><font CLASS=keyword>protected</font>:</font>    fdxstm* in;    <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> chstat(<font CLASS=keytype>int</font> newstat);    <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font> uerrno();    <font CLASS=keyword>virtual</font> <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* uerrmsg(<font CLASS=keytype>int</font> code);    <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> doopen();    <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> doclose();    <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font> dorawwrite(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* buf, <font CLASS=keytype>int</font> count);<font CLASS=preproc><font CLASS=keyword>public</font>:</font>    fdxoutstm(<font CLASS=keytype>int</font> ibufsize, fdxstm* iin);    <font CLASS=keyword>virtual</font> ~fdxoutstm();    <font CLASS=keyword>virtual</font> string get_streamname();};<font CLASS=keyword>typedef</font> fdxstm* pfdxstm;<font CLASS=comment>//</font><font CLASS=comment>// fdxstm: abstract full-duplex stream (for sockets and pipes)</font><font CLASS=comment>//</font><font CLASS=keyword>class</font> fdxstm: public instm{    <font CLASS=keyword>friend</font> <font CLASS=keyword>class</font> fdxoutstm;<font CLASS=preproc><font CLASS=keyword>protected</font>:</font>    fdxoutstm out;    <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font> dorawwrite(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* buf, <font CLASS=keytype>int</font> count);<font CLASS=preproc><font CLASS=keyword>public</font>:</font>    fdxstm(<font CLASS=keytype>int</font> ibufsize <font CLASS=symbols>=</font> <font CLASS=symbols>-</font><font CLASS=integer>1</font>);    <font CLASS=keyword>virtual</font> ~fdxstm();    <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font> classid();    <font CLASS=keytype>void</font> set_bufsize(<font CLASS=keytype>int</font> newval);       <font CLASS=comment>// sets both input and output buffer sizes</font>    <font CLASS=keytype>void</font> open();            <font CLASS=comment>// rewritten to pass the call to the output stream too</font>    <font CLASS=keytype>void</font> close();    <font CLASS=keytype>void</font> cancel();    <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> flush();    <font CLASS=keytype>int</font> tell(<font CLASS=keytype>bool</font>);         <font CLASS=comment>// true for input and false for output</font>    // output interface: pretend <font CLASS=keyword>this</font> <font CLASS=keyword>class</font> is derived both    // from instm and outstm. actually we can<font CLASS=sinquot>'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&amp; str)             { out.put(str); }    void putline(const char* str)           { out.putline(str); }    void putline(const string&amp; 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&amp;()			    { return out; }};<font CLASS=comment>//</font><font CLASS=comment>// abstract input filter class</font><font CLASS=comment>//</font><font CLASS=keyword>class</font> infilter: public instm {<font CLASS=preproc><font CLASS=keyword>protected</font>:</font>    instm*   stm;    <font CLASS=keytype>char</font>*    savebuf;    <font CLASS=keytype>int</font>      savecount;    string   postponed;    <font CLASS=keytype>void</font> copytobuf(string&amp; s);    <font CLASS=keytype>void</font> copytobuf(pconst&amp; buf, <font CLASS=keytype>int</font>&amp; count);    <font CLASS=keytype>bool</font> copytobuf(<font CLASS=keytype>char</font> c);    <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> freenotify(component* sender);    <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> doopen();    <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> doclose();    <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font>  dorawread(<font CLASS=keytype>char</font>* buf, <font CLASS=keytype>int</font> count);    <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> dofilter() <font CLASS=symbols>=</font> <font CLASS=integer>0</font>;    <font CLASS=keytype>bool</font> bufavail()  { <font CLASS=keyword>return</font> savecount &gt; <font CLASS=integer>0</font>; }    <font CLASS=keytype>void</font> post(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* buf, <font CLASS=keytype>int</font> count);    <font CLASS=keytype>void</font> post(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* s);    <font CLASS=keytype>void</font> post(<font CLASS=keytype>char</font> c);    <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> post(string s);

⌨️ 快捷键说明

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