asynchat
index
/usr/local/lib/python2.5/asynchat.py
Module Docs

A class supporting chat-style (command/response) protocols.
 
This class adds support for 'chat' style protocols - where one side
sends a 'command', and the other sends a response (examples would be
the common internet protocols - smtp, nntp, ftp, etc..).
 
The handle_read() method looks at the input stream for the current
'terminator' (usually '\r\n' for single-line responses, '\r\n.\r\n'
for multi-line output), calling found_terminator() on its
receipt.
 
for example:
Say you build an async nntp client using this class.  At the start
of the connection, you'll have self.terminator set to '\r\n', in
order to process the single-line greeting.  Just before issuing a
'LIST' command you'll set it to '\r\n.\r\n'.  The output of the LIST
command will be accumulated (using your own 'collect_incoming_data'
method) up to the terminator, and then control will be returned to
you - by calling your found_terminator() method.

 
Modules
       
asyncore
socket

 
Classes
       
fifo
simple_producer
asyncore.dispatcher
async_chat

 
class async_chat(asyncore.dispatcher)
    This is an abstract class.  You must derive from this class, and add
the two methods collect_incoming_data() and found_terminator()
 
  Methods defined here:
__init__(self, conn=None)
close_when_done(self)
automatically close this channel once the outgoing queue is empty
collect_incoming_data(self, data)
discard_buffers(self)
found_terminator(self)
get_terminator(self)
handle_close(self)
handle_read(self)
handle_write(self)
initiate_send(self)
push(self, data)
push_with_producer(self, producer)
readable(self)
predicate for inclusion in the readable for select()
refill_buffer(self)
# refill the outgoing buffer by calling the more() method
# of the first producer in the queue
set_terminator(self, term)
Set the input delimiter.  Can be a fixed string of any length, an integer, or None
writable(self)
predicate for inclusion in the writable for select()

Data and other attributes defined here:
ac_in_buffer_size = 4096
ac_out_buffer_size = 4096

Methods inherited from asyncore.dispatcher:
__getattr__(self, attr)
# cheap inheritance, used to pass all other attribute
# references to the underlying socket object.
__repr__(self)
accept(self)
add_channel(self, map=None)
bind(self, addr)
close(self)
connect(self, address)
create_socket(self, family, type)
del_channel(self, map=None)
handle_accept(self)
handle_connect(self)
handle_error(self)
handle_expt(self)
handle_expt_event(self)
handle_read_event(self)
handle_write_event(self)
listen(self, num)
log(self, message)
log_info(self, message, type='info')
recv(self, buffer_size)
send(self, data)
set_reuse_addr(self)
set_socket(self, sock, map=None)

Data and other attributes inherited from asyncore.dispatcher:
accepting = False
addr = None
closing = False
connected = False
debug = False

 
class fifo
     Methods defined here:
__init__(self, list=None)
__len__(self)
first(self)
is_empty(self)
pop(self)
push(self, data)

 
class simple_producer
     Methods defined here:
__init__(self, data, buffer_size=512)
more(self)

 
Functions
       
find_prefix_at_end(haystack, needle)