<div><span class="gmail_quote">On 7/11/05, <b class="gmail_sendername">Justin Johnson</b> &lt;<a href="mailto:justinjohnson@gmail.com">justinjohnson@gmail.com</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div><span class="q"><span class="gmail_quote">On 7/11/05, <b class="gmail_sendername">Jp Calderone</b> &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:exarkun@divmod.com" target="_blank">exarkun@divmod.com
</a>&gt; wrote:</span> 
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">On Mon, 11 Jul 2005 12:16:35 -0500, Justin Johnson &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:justinjohnson@gmail.com" target="_blank">
justinjohnson@gmail.com </a>&gt; wrote:<br>&gt;On 7/11/05, Jp Calderone &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:exarkun@divmod.com" target="_blank">exarkun@divmod.com</a>&gt; wrote:<br>&gt;&gt;
<br>&gt; [snip]<br><br>That mostly sounds correct, except the last bit.&nbsp;&nbsp;What makes it a transport is that it implements /all/ of ITransport.&nbsp;&nbsp;Moreover, ProcessProtocols expect their transport to be an IProcessTransport, which adds several methods on top of ITransport.&nbsp;&nbsp;Everything in each of those interfaces needs to be implemented. 
</blockquote>
<div>&nbsp;</div></span>
<div>Ahh... I missed those interfaces&nbsp;because I was starting with win32eventreactor.Process, which doesn't implement either ITransport or IProcessTransport (either with an implements() or by defining all of those methods). 
</div>
<div>&nbsp;</div></div></blockquote>
<div>&nbsp;</div>
<div>Hmm.. I somehow missed the obvious implements call.&nbsp; But I still don't see all methods defined (e.g. getPeer, getHost, writeSequence).</div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div>
<div>After some more thought about this I think I will have to define new xxxOps methods for stdout and stderr (and maybe stdin as well).&nbsp; These ops' ovDone methods will call the methods on the transport (Process) appropriate for ProcessProtocols. 
</div><span class="q"><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">For reference, &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://twistedmatrix.com/documents/current/api/twisted.internet.interfaces.ITransport.html" target="_blank">
 http://twistedmatrix.com/documents/current/api/twisted.internet.interfaces.ITransport.html</a>&gt; and &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://twistedmatrix.com/documents/current/api/twisted.internet.interfaces.IProcessTransport.html" target="_blank">
http://twistedmatrix.com/documents/current/api/twisted.internet.interfaces.IProcessTransport.html </a>&gt;.<br><br>Jp<br><br>_______________________________________________<br>Twisted-Python mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Twisted-Python@twistedmatrix.com" target="_blank">
Twisted-Python@twistedmatrix.com</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python" target="_blank">http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
</a><br></blockquote></span></div><br></blockquote></div><br>