[Twisted-Python] A few simple questions

Russell E. Owen rowen at uw.edu
Tue Jul 17 12:25:37 EDT 2012


In article 
<CAE_Hg6bDAiL_HUF1D7ZfigGv-FgXTDqsriq2RT44tAqweiBBDg at mail.gmail.com>,
 Laurens Van Houtven <_ at lvh.cc> wrote:

> On Thursday, July 12, 2012, Russell E. Owen wrote:
> 
> > I'm adding Twisted support to some existing communication code and I
> > have a few questions which I hope are simple. I've been reading the API
> > documentation, but if the answers are there I'm missing them.
> >
> > What happens if one tries to write to a protocol.transport that is not
> > connected or in an error state? (I'm hoping that this case has defined
> > behavior and that it will raise an exception).
> 
> 
> Not connected usually means that protocol.transport is None
> 
> 
> >
> > Is there some way to query a protocol to see if it is in a good state
> > (connected and no errors)? I realize with callbacks this is not usually
> > necessary, but I have a case where it would be helpful (though I can
> > probably manage without it).
> 
> Can you elaborate on the case?

I've found that Twisted sometimes swallows errors unless I am extremely 
careful. I would like to be able to check a protocol to make sure it is 
operational (connected and happy) as a means of assuring that I've not 
missed an error.

> > When reading raw bytes, is there any way to get the bytes from the
> > protocol? I assume not: that if one wants to buffer the data one must do
> > that in the callback. If so, does Twisted provide a suitable buffer
> > class?
> 
> The protocol gets dataReceived called. What kind of buffering do you want
> to do and why? Would a simple StringIO suffice?

I read the LineReceiver code (should have done that before asking) and 
realize it's buffering using a simple string. I just rewrote that simple 
class to meet my needs and am quite happy.

-- Russell




More information about the Twisted-Python mailing list