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

📄 classpchannel.html

📁 pwlib开发文档
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>PChannel class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.18 --><center><a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center><hr><h1>PChannel Class Reference</h1><code>#include &lt;<a class="el" href="channel_8h-source.html">channel.h</a>&gt;</code><p><p>Inheritance diagram for PChannel:<p><center><img src="classPChannel.png" usemap="#PChannel_map" border="0" alt=""></center><map name="PChannel_map"><area href="classPObject.html" alt="PObject" shape="rect" coords="0,0,113,24"><area href="classPConsoleChannel.html" alt="PConsoleChannel" shape="rect" coords="123,112,236,136"><area href="classPFile.html" alt="PFile" shape="rect" coords="123,168,236,192"><area href="classPIndirectChannel.html" alt="PIndirectChannel" shape="rect" coords="123,224,236,248"><area href="classPPipeChannel.html" alt="PPipeChannel" shape="rect" coords="123,280,236,304"><area href="classPQueueChannel.html" alt="PQueueChannel" shape="rect" coords="123,336,236,360"><area href="classPSerialChannel.html" alt="PSerialChannel" shape="rect" coords="123,392,236,416"><area href="classPSocket.html" alt="PSocket" shape="rect" coords="123,448,236,472"><area href="classPSoundChannel.html" alt="PSoundChannel" shape="rect" coords="123,504,236,528"><area href="classPVideoChannel.html" alt="PVideoChannel" shape="rect" coords="123,560,236,584"></map><a href="classPChannel-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Miscellaneous functions</h2></td></tr><tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z53_0">ShutdownValue</a> { <a class="el" href="classPChannel.html#z53_0s0">ShutdownRead</a> =  0, <a class="el" href="classPChannel.html#z53_0s1">ShutdownWrite</a> =  1, <a class="el" href="classPChannel.html#z53_0s2">ShutdownReadAndWrite</a> =  2 }</td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z53_1">Close</a> ()</td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z53_2">Shutdown</a> (<a class="el" href="classPChannel.html#z53_0">ShutdownValue</a> option)</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z53_3">SetBufferSize</a> (PINDEX newSize)</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z53_4">SendCommandString</a> (const <a class="el" href="classPString.html">PString</a> &amp;command)</td></tr><tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z53_5">AbortCommandString</a> ()</td></tr><tr><td colspan=2><br><h2>Error functions</h2></td></tr><tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z55_0">Errors</a> { <br>&nbsp;&nbsp;<a class="el" href="classPChannel.html#z55_0s3">NoError</a>, <a class="el" href="classPChannel.html#z55_0s4">NotFound</a>, <a class="el" href="classPChannel.html#z55_0s5">FileExists</a>, <a class="el" href="classPChannel.html#z55_0s6">DiskFull</a>, <br>&nbsp;&nbsp;<a class="el" href="classPChannel.html#z55_0s7">AccessDenied</a>, <a class="el" href="classPChannel.html#z55_0s8">DeviceInUse</a>, <a class="el" href="classPChannel.html#z55_0s9">BadParameter</a>, <a class="el" href="classPChannel.html#z55_0s10">NoMemory</a>, <br>&nbsp;&nbsp;<a class="el" href="classPChannel.html#z55_0s11">NotOpen</a>, <a class="el" href="classPChannel.html#z55_0s12">Timeout</a>, <a class="el" href="classPChannel.html#z55_0s13">Interrupted</a>, <a class="el" href="classPChannel.html#z55_0s14">BufferTooSmall</a>, <br>&nbsp;&nbsp;<a class="el" href="classPChannel.html#z55_0s15">Miscellaneous</a>, <a class="el" href="classPChannel.html#z55_0s16">ProtocolFailure</a>, <a class="el" href="classPChannel.html#z55_0s17">NumNormalisedErrors</a><br> }</td></tr><tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z55_1">ErrorGroup</a> { <a class="el" href="classPChannel.html#z55_1s18">LastReadError</a>, <a class="el" href="classPChannel.html#z55_1s19">LastWriteError</a>, <a class="el" href="classPChannel.html#z55_1s20">LastGeneralError</a>, <a class="el" href="classPChannel.html#z55_1s21">NumErrorGroups</a> }</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPChannel.html#z55_0">Errors</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z55_2">GetErrorCode</a> (<a class="el" href="classPChannel.html#z55_1">ErrorGroup</a> group=NumErrorGroups) const</td></tr><tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z55_3">GetErrorNumber</a> (<a class="el" href="classPChannel.html#z55_1">ErrorGroup</a> group=NumErrorGroups) const</td></tr><tr><td nowrap align=right valign=top>virtual <a class="el" href="classPString.html">PString</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z55_4">GetErrorText</a> (<a class="el" href="classPChannel.html#z55_1">ErrorGroup</a> group=NumErrorGroups) const</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPString.html">PString</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z55_5">GetErrorText</a> (<a class="el" href="classPChannel.html#z55_0">Errors</a> lastError, int osError=0)</td></tr><tr><td colspan=2><br><h2>Public Types</h2></td></tr><tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#s26">PXBlockType</a> { <a class="el" href="classPChannel.html#s26s22">PXReadBlock</a>, <a class="el" href="classPChannel.html#s26s23">PXWriteBlock</a>, <a class="el" href="classPChannel.html#s26s24">PXAcceptBlock</a>, <a class="el" href="classPChannel.html#s26s25">PXConnectBlock</a> }</td></tr><tr><td colspan=2><br><h2>Public Methods</h2></td></tr><tr><td colspan="2"><div class="groupHeader">Construction</div></td></tr><tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z43_0">PChannel</a> ()</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Create the channel.</em> <a href="#z43_0"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z43_1">~PChannel</a> ()</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Close down the channel.</em> <a href="#z43_1"></a><em></em></font><br><br></td></tr><tr><td colspan="2"><div class="groupHeader">Overrides from class PObject</div></td></tr><tr><td nowrap align=right valign=top>virtual <a class="el" href="classPObject.html#z199_0">Comparison</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z45_0">Compare</a> (const <a class="el" href="classPObject.html">PObject</a> &amp;obj) const</td></tr><tr><td nowrap align=right valign=top>virtual PINDEX&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z45_1">HashFunction</a> () const</td></tr><tr><td colspan="2"><div class="groupHeader">Information functions</div></td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z47_0">IsOpen</a> () const</td></tr><tr><td nowrap align=right valign=top>virtual <a class="el" href="classPString.html">PString</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z47_1">GetName</a> () const</td></tr><tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z47_2">GetHandle</a> () const</td></tr><tr><td nowrap align=right valign=top>virtual PChannel *&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z47_3">GetBaseReadChannel</a> () const</td></tr><tr><td nowrap align=right valign=top>virtual PChannel *&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z47_4">GetBaseWriteChannel</a> () const</td></tr><tr><td colspan="2"><div class="groupHeader">Reading functions</div></td></tr><tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z49_0">SetReadTimeout</a> (const <a class="el" href="classPTimeInterval.html">PTimeInterval</a> &amp;time)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPTimeInterval.html">PTimeInterval</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z49_1">GetReadTimeout</a> () const</td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z49_2">Read</a> (void *buf, PINDEX len)</td></tr><tr><td nowrap align=right valign=top>virtual PINDEX&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z49_3">GetLastReadCount</a> () const</td></tr><tr><td nowrap align=right valign=top>virtual int&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z49_4">ReadChar</a> ()</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z49_5">ReadBlock</a> (void *buf, PINDEX len)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPString.html">PString</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z49_6">ReadString</a> (PINDEX len)</td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z49_7">ReadAsync</a> (void *buf, PINDEX len)</td></tr><tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z49_8">OnReadComplete</a> (void *buf, PINDEX len)</td></tr><tr><td colspan="2"><div class="groupHeader">Writing functions</div></td></tr><tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z51_0">SetWriteTimeout</a> (const <a class="el" href="classPTimeInterval.html">PTimeInterval</a> &amp;time)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPTimeInterval.html">PTimeInterval</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z51_1">GetWriteTimeout</a> () const</td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z51_2">Write</a> (const void *buf, PINDEX len)</td></tr><tr><td nowrap align=right valign=top>virtual PINDEX&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z51_3">GetLastWriteCount</a> () const</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z51_4">WriteChar</a> (int c)</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z51_5">WriteString</a> (const <a class="el" href="classPString.html">PString</a> &amp;str)</td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z51_6">WriteAsync</a> (const void *buf, PINDEX len)</td></tr><tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#z51_7">OnWriteComplete</a> (const void *buf, PINDEX len)</td></tr><tr><td colspan=2><br><h2>Static Public Methods</h2></td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#d0">ConvertOSError</a> (int libcReturnValue, <a class="el" href="classPChannel.html#z55_0">Errors</a> &amp;lastError, int &amp;osError)</td></tr><tr><td colspan=2><br><h2>Protected Methods</h2></td></tr><tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#b0">PChannel</a> (const PChannel &amp;)</td></tr><tr><td nowrap align=right valign=top>PChannel &amp;&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#b1">operator=</a> (const PChannel &amp;)</td></tr><tr><td nowrap align=right valign=top>virtual BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#b2">ConvertOSError</a> (int libcReturnValue, <a class="el" href="classPChannel.html#z55_1">ErrorGroup</a> group=LastGeneralError)</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#b3">SetErrorValues</a> (<a class="el" href="classPChannel.html#z55_0">Errors</a> errorCode, int osError, <a class="el" href="classPChannel.html#z55_1">ErrorGroup</a> group=LastGeneralError)</td></tr><tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#b4">ReadCharWithTimeout</a> (<a class="el" href="classPTimeInterval.html">PTimeInterval</a> &amp;timeout)</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#b5">ReceiveCommandString</a> (int nextChar, const <a class="el" href="classPString.html">PString</a> &amp;reply, PINDEX &amp;pos, PINDEX start)</td></tr><tr><td nowrap align=right valign=top>BOOL&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#b6">PXSetIOBlock</a> (<a class="el" href="classPChannel.html#s26">PXBlockType</a> type, const <a class="el" href="classPTimeInterval.html">PTimeInterval</a> &amp;timeout)</td></tr><tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#b7">PXClose</a> ()</td></tr><tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr><tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n0">os_handle</a></td></tr><tr><td>&nbsp;</td><td><font size=-1><em>The operating system file handle return by standard open() function.</em> <a href="#n0"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPChannel.html#z55_0">Errors</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n1">lastErrorCode</a> [NumErrorGroups+1]</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>The platform independant error code.</em> <a href="#n1"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n2">lastErrorNumber</a> [NumErrorGroups+1]</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>The operating system error number (eg as returned by errno).</em> <a href="#n2"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>PINDEX&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n3">lastReadCount</a></td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Number of byte last read by the <a class="el" href="classPChannel.html#z49_2">Read()</a> function.</em> <a href="#n3"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>PINDEX&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n4">lastWriteCount</a></td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Number of byte last written by the <a class="el" href="classPChannel.html#z51_2">Write()</a> function.</em> <a href="#n4"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPTimeInterval.html">PTimeInterval</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n5">readTimeout</a></td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Timeout for read operations.</em> <a href="#n5"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPTimeInterval.html">PTimeInterval</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n6">writeTimeout</a></td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Timeout for write operations.</em> <a href="#n6"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPString.html">PString</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n7">channelName</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPMutex.html">PMutex</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n8">px_threadMutex</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPChannel.html#s26">PXBlockType</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n9">px_lastBlockType</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPThread.html">PThread</a> *&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n10">px_readThread</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPThread.html">PThread</a> *&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n11">px_writeThread</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPMutex.html">PMutex</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n12">px_writeMutex</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPThread.html">PThread</a> *&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n13">px_selectThread</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPMutex.html">PMutex</a>&nbsp;</td><td valign=bottom><a class="el" href="classPChannel.html#n14">px_selectMutex</a></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>Abstract class defining I/O channel semantics. An I/O channel can be a serial port, pipe, network socket or even just a simple file. Anything that requires opening and closing then reading and/or writing from.<p>A descendent would typically have constructors and an Open()# function which enables access to the I/O channel it represents. The <a class="el" href="classPChannel.html#z49_2">Read()</a># and <a class="el" href="classPChannel.html#z51_2">Write()</a># functions would then be overridden to the platform and I/O specific mechanisms required.<p>The general model for a channel is that the channel accepts and/or supplies a stream of bytes. The access to the stream of bytes is via a set of functions that allow certain types of transfer. These include direct transfers, buffered transfers (via iostream) or asynchronous transfers.<p>The model also has the fundamental state of the channel being {\it open} or {\it closed}. A channel instance that is closed contains sufficient information to describe the channel but does not allocate or lock any system resources. An open channel allocates or locks the particular system resource. The act of opening a channel is a key event that may fail. In this case the channel remains closed and error values are set. <p><hr><h2>Member Enumeration Documentation</h2><a name="z55_1" doxytag="PChannel::ErrorGroup"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> enum PChannel::ErrorGroup      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Error groups. To aid in multithreaded applications where reading and writing may be happening simultaneously, read and write errors are separated from other errors. <dl compact><dt><b>Enumeration values: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em><a name="z55_1s18" doxytag="LastReadError"></a><em>LastReadError</em></em>&nbsp;</td><td></td></tr><tr><td valign=top><em><a name="z55_1s19" doxytag="LastWriteError"></a><em>LastWriteError</em></em>&nbsp;</td><td>Error during <a class="el" href="classPChannel.html#z49_2">Read()</a> operation.</td></tr><tr><td valign=top><em><a name="z55_1s20" doxytag="LastGeneralError"></a><em>LastGeneralError</em></em>&nbsp;</td><td>Error during <a class="el" href="classPChannel.html#z51_2">Write()</a> operation.</td></tr><tr><td valign=top><em><a name="z55_1s21" doxytag="NumErrorGroups"></a><em>NumErrorGroups</em></em>&nbsp;</td><td>Error during other operation, eg Open().</td></tr></table></dl>    </td>  </tr></table><a name="z55_0" doxytag="PChannel::Errors"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> enum PChannel::Errors      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Normalised error codes. The error result of the last file I/O operation in this object. <dl compact><dt><b>Enumeration values: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em><a name="z55_0s3" doxytag="NoError"></a><em>NoError</em></em>&nbsp;</td><td></td></tr><tr><td valign=top><em><a name="z55_0s4" doxytag="NotFound"></a><em>NotFound</em></em>&nbsp;</td><td>Open fail due to device or file not found.</td></tr><tr><td valign=top><em><a name="z55_0s5" doxytag="FileExists"></a><em>FileExists</em></em>&nbsp;</td><td>Open fail due to file already existing.</td></tr><tr><td valign=top><em><a name="z55_0s6" doxytag="DiskFull"></a><em>DiskFull</em></em>&nbsp;</td><td>Write fail due to disk full.</td></tr><tr><td valign=top><em><a name="z55_0s7" doxytag="AccessDenied"></a><em>AccessDenied</em></em>&nbsp;</td><td>Operation fail due to insufficient privilege.</td></tr><tr><td valign=top><em><a name="z55_0s8" doxytag="DeviceInUse"></a><em>DeviceInUse</em></em>&nbsp;</td><td>Open fail due to device already open for exclusive use.</td></tr><tr><td valign=top><em><a name="z55_0s9" doxytag="BadParameter"></a><em>BadParameter</em></em>&nbsp;</td><td>Operation fail due to bad parameters.</td></tr><tr><td valign=top><em><a name="z55_0s10" doxytag="NoMemory"></a><em>NoMemory</em></em>&nbsp;</td><td>Operation fail due to insufficient memory.</td></tr><tr><td valign=top><em><a name="z55_0s11" doxytag="NotOpen"></a><em>NotOpen</em></em>&nbsp;</td><td>Operation fail due to channel not being open yet.</td></tr><tr><td valign=top><em><a name="z55_0s12" doxytag="Timeout"></a><em>Timeout</em></em>&nbsp;</td><td>Operation failed due to a timeout.</td></tr><tr><td valign=top><em><a name="z55_0s13" doxytag="Interrupted"></a><em>Interrupted</em></em>&nbsp;</td><td>Operation was interrupted.</td></tr><tr><td valign=top><em><a name="z55_0s14" doxytag="BufferTooSmall"></a><em>BufferTooSmall</em></em>&nbsp;</td><td>Operations buffer was too small for data.</td></tr><tr><td valign=top><em><a name="z55_0s15" doxytag="Miscellaneous"></a><em>Miscellaneous</em></em>&nbsp;</td><td>Miscellaneous error.</td></tr><tr><td valign=top><em><a name="z55_0s16" doxytag="ProtocolFailure"></a><em>ProtocolFailure</em></em>&nbsp;</td><td>High level protocol failure.</td></tr><tr><td valign=top><em><a name="z55_0s17" doxytag="NumNormalisedErrors"></a><em>NumNormalisedErrors</em></em>&nbsp;</td><td></td></tr></table></dl>    </td>  </tr></table><a name="s26" doxytag="PChannel::PXBlockType"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> enum PChannel::PXBlockType      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p><dl compact><dt><b>Enumeration values: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em><a name="s26s22" doxytag="PXReadBlock"></a><em>PXReadBlock</em></em>&nbsp;</td><td></td></tr><tr><td valign=top><em><a name="s26s23" doxytag="PXWriteBlock"></a><em>PXWriteBlock</em></em>&nbsp;</td><td></td></tr><tr><td valign=top><em><a name="s26s24" doxytag="PXAcceptBlock"></a><em>PXAcceptBlock</em></em>&nbsp;</td><td></td></tr><tr><td valign=top><em><a name="s26s25" doxytag="PXConnectBlock"></a><em>PXConnectBlock</em></em>&nbsp;</td><td></td></tr></table></dl>

⌨️ 快捷键说明

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