📄 pstreams.h.html
字号:
<font CLASS=preproc><font CLASS=keyword>public</font>:</font> infilter(instm* istm, <font CLASS=keytype>int</font> ibufsize <font CLASS=symbols>=</font> <font CLASS=symbols>-</font><font CLASS=integer>1</font>); <font CLASS=keyword>virtual</font> ~infilter(); <font CLASS=keyword>virtual</font> string get_errstmname(); instm* get_stm() { <font CLASS=keyword>return</font> stm; } <font CLASS=keytype>void</font> set_stm(instm* stm);};<font CLASS=comment>//</font><font CLASS=comment>// abstract output filter class</font><font CLASS=comment>//</font><font CLASS=keyword>class</font> outfilter: public outstm{<font CLASS=preproc><font CLASS=keyword>protected</font>:</font> outstm* stm; <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=preproc><font CLASS=keyword>public</font>:</font> outfilter(outstm* istm, <font CLASS=keytype>int</font> ibufsize <font CLASS=symbols>=</font> <font CLASS=symbols>-</font><font CLASS=integer>1</font>); <font CLASS=keyword>virtual</font> ~outfilter(); <font CLASS=keyword>virtual</font> string get_errstmname(); outstm* get_stm() { <font CLASS=keyword>return</font> stm; } <font CLASS=keytype>void</font> set_stm(outstm* stm);};<font CLASS=comment>//</font><font CLASS=comment>// inmemory - memory stream</font><font CLASS=comment>//</font><font CLASS=keyword>class</font> inmemory: public instm {<font CLASS=preproc><font CLASS=keyword>protected</font>:</font> string mem; <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> bufalloc(); <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> buffree(); <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> bufvalidate(); <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> doseek(<font CLASS=keytype>int</font> newpos, ioseekmode mode); <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=preproc><font CLASS=keyword>public</font>:</font> inmemory(<font CLASS=keyword>const</font> string& imem); <font CLASS=keyword>virtual</font> ~inmemory(); <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font> classid(); <font CLASS=keyword>virtual</font> string get_streamname(); <font CLASS=keytype>int</font> seek(<font CLASS=keytype>int</font> newpos, ioseekmode mode <font CLASS=symbols>=</font> IO_BEGIN); string get_strdata() { <font CLASS=keyword>return</font> mem; } <font CLASS=keytype>void</font> set_strdata(<font CLASS=keyword>const</font> string& data);};<font CLASS=comment>//</font><font CLASS=comment>// outmemory - memory stream</font><font CLASS=comment>//</font><font CLASS=keyword>class</font> outmemory: public outstm {<font CLASS=preproc><font CLASS=keyword>protected</font>:</font> string mem; <font CLASS=keytype>int</font> limit; <font CLASS=keytype>int</font> increment; <font CLASS=comment>// deprecated</font> <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> doseek(<font CLASS=keytype>int</font> newpos, ioseekmode mode); <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> outmemory(<font CLASS=keytype>int</font> limit <font CLASS=symbols>=</font> <font CLASS=symbols>-</font><font CLASS=integer>1</font>, <font CLASS=keytype>int</font> increment = <font CLASS=integer>0</font>); <font CLASS=comment>// increment is deprecated</font> <font CLASS=keyword>virtual</font> ~outmemory(); <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font> classid(); <font CLASS=keyword>virtual</font> string get_streamname(); <font CLASS=keytype>int</font> tell() { <font CLASS=keyword>return</font> abspos; } string get_strdata(); <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* get_data() { <font CLASS=keyword>return</font> pconst(mem); } <font CLASS=comment>// deprecated</font>};<font CLASS=comment>// -------------------------------------------------------------------- //</font><font CLASS=comment>// --- file input/output --------------------------------------------- //</font><font CLASS=comment>// -------------------------------------------------------------------- //</font><font CLASS=comment>//</font><font CLASS=comment>// infile - file input</font><font CLASS=comment>//</font><font CLASS=keyword>class</font> outfile;<font CLASS=keyword>class</font> infile: public instm{<font CLASS=preproc><font CLASS=keyword>protected</font>:</font> string filename; <font CLASS=keytype>int</font> syshandle; <font CLASS=comment>// if not -1, assigned to handle in open() instead of opening a file by a name</font> <font CLASS=keytype>int</font> peerhandle; <font CLASS=comment>// pipe peer handle, needed for closing the peer after fork() on unix</font> <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> doopen(); <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> doclose();<font CLASS=preproc><font CLASS=keyword>public</font>:</font> infile(); infile(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* ifn); infile(<font CLASS=keyword>const</font> string& ifn); <font CLASS=keyword>virtual</font> ~infile(); <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font> classid(); <font CLASS=keytype>void</font> pipe(outfile&); <font CLASS=keyword>virtual</font> string get_streamname(); <font CLASS=keytype>int</font> get_syshandle() { <font CLASS=keyword>return</font> syshandle; } <font CLASS=keytype>void</font> set_syshandle(<font CLASS=keytype>int</font> ihandle) { close(); syshandle <font CLASS=symbols>=</font> ihandle; } <font CLASS=keytype>int</font> get_peerhandle() { <font CLASS=keyword>return</font> peerhandle; } string get_filename() { <font CLASS=keyword>return</font> filename; } <font CLASS=keytype>void</font> set_filename(<font CLASS=keyword>const</font> string& ifn) { close(); filename <font CLASS=symbols>=</font> ifn; } <font CLASS=keytype>void</font> set_filename(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* ifn) { close(); filename <font CLASS=symbols>=</font> ifn; }};<font CLASS=comment>//</font><font CLASS=comment>// outfile - file output</font><font CLASS=comment>//</font><font CLASS=keyword>class</font> outfile: public outstm{<font CLASS=preproc><font CLASS=keyword>protected</font>:</font> <font CLASS=keyword>friend</font> <font CLASS=keyword>class</font> infile; <font CLASS=comment>// infile::pipe() needs access to peerhandle</font> string filename; <font CLASS=keytype>int</font> syshandle; <font CLASS=comment>// if not -1, assigned to handle in open() instead of opening a file by a name</font> <font CLASS=keytype>int</font> peerhandle; <font CLASS=comment>// pipe peer handle, needed for closing the peer after fork() on unix</font> <font CLASS=keytype>int</font> umode; <font CLASS=comment>// unix file mode (unix only), default = 644</font> <font CLASS=keytype>bool</font> append; <font CLASS=comment>// append (create new if needed), default = false</font> <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> doopen(); <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> doclose();<font CLASS=preproc><font CLASS=keyword>public</font>:</font> outfile(); outfile(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* ifn, <font CLASS=keytype>bool</font> iappend <font CLASS=symbols>=</font> <font CLASS=keyword>false</font>); outfile(<font CLASS=keyword>const</font> string& ifn, <font CLASS=keytype>bool</font> iappend <font CLASS=symbols>=</font> <font CLASS=keyword>false</font>); <font CLASS=keyword>virtual</font> ~outfile(); <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font> classid(); <font CLASS=keyword>virtual</font> <font CLASS=keytype>void</font> flush(); <font CLASS=keyword>virtual</font> string get_streamname(); <font CLASS=keytype>int</font> get_syshandle() { <font CLASS=keyword>return</font> syshandle; } <font CLASS=keytype>void</font> set_syshandle(<font CLASS=keytype>int</font> ihandle) { close(); syshandle <font CLASS=symbols>=</font> ihandle; } <font CLASS=keytype>int</font> get_peerhandle() { <font CLASS=keyword>return</font> peerhandle; } string get_filename() { <font CLASS=keyword>return</font> filename; } <font CLASS=keytype>void</font> set_filename(<font CLASS=keyword>const</font> string& ifn) { close(); filename <font CLASS=symbols>=</font> ifn; } <font CLASS=keytype>void</font> set_filename(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* ifn) { close(); filename <font CLASS=symbols>=</font> ifn; } <font CLASS=keytype>bool</font> get_append() { <font CLASS=keyword>return</font> append; } <font CLASS=keytype>void</font> set_append(<font CLASS=keytype>bool</font> iappend) { close(); append <font CLASS=symbols>=</font> iappend; } <font CLASS=keytype>int</font> get_umode() { <font CLASS=keyword>return</font> umode; } <font CLASS=keytype>void</font> set_umode(<font CLASS=keytype>int</font> iumode) { close(); umode <font CLASS=symbols>=</font> iumode; }};<font CLASS=comment>//</font><font CLASS=comment>// logfile - file output with thread-safe putf()</font><font CLASS=comment>//</font><font CLASS=keyword>class</font> logfile: public outfile{<font CLASS=preproc><font CLASS=keyword>protected</font>:</font><font CLASS=preproc>#ifndef</font> PTYPES_ST mutex lock;<font CLASS=preproc>#endif</font> <font CLASS=preproc><font CLASS=keyword>public</font>:</font> logfile(); logfile(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* ifn, <font CLASS=keytype>bool</font> iappend <font CLASS=symbols>=</font> <font CLASS=keyword>true</font>); logfile(<font CLASS=keyword>const</font> string& ifn, <font CLASS=keytype>bool</font> iappend <font CLASS=symbols>=</font> <font CLASS=keyword>true</font>); <font CLASS=keyword>virtual</font> ~logfile(); <font CLASS=keyword>virtual</font> <font CLASS=keytype>int</font> classid(); <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=comment>//</font><font CLASS=comment>// intee - UNIX tee-style utility class</font><font CLASS=comment>//</font><font CLASS=keyword>class</font> intee: public infilter {<font CLASS=preproc><font CLASS=keyword>protected</font>:</font> outfile file; <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>void</font> dofilter();<font CLASS=preproc><font CLASS=keyword>public</font>:</font> intee(instm* istm, <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* ifn, <font CLASS=keytype>bool</font> iappend <font CLASS=symbols>=</font> <font CLASS=keyword>false</font>); intee(instm* istm, <font CLASS=keyword>const</font> string& ifn, <font CLASS=keytype>bool</font> iappend <font CLASS=symbols>=</font> <font CLASS=keyword>false</font>); <font CLASS=keyword>virtual</font> ~intee(); outfile* get_file() { <font CLASS=keyword>return</font> &file; } <font CLASS=keyword>virtual</font> string get_streamname();};<font CLASS=comment>// -------------------------------------------------------------------- //</font><font CLASS=comment>// --- named pipes --------------------------------------------------- //</font><font CLASS=comment>// -------------------------------------------------------------------- //</font><font CLASS=comment>// on Unix this directory can be overridden by providing the</font><font CLASS=comment>// full path, e.g. '/var/run/mypipe'. the path is ignored on </font><font CLASS=comment>// Windows and is always replaced with '\\<server>\pipe\'</font><font CLASS=preproc>#ifndef</font> WIN32 <font CLASS=preproc>#</font> define DEF_NAMED_PIPES_DIR <font CLASS=dblquot>"/tmp/"</font> <font CLASS=preproc>#endif</font>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -