circuits.net.protocols.line – Line Protocol

Events

class circuits.net.protocols.line.Line(*args, **kwargs)

Line Event

x.__init__(...) initializes x; see x.__class__.__doc__ for signature

Components

class circuits.net.protocols.line.LP(*args, **kwargs)

Line Protocol

Implements the Line Protocol.

Incoming data is split into lines with a splitter function. For each line of data processed a Line Event is created. Any unfinished lines are appended into an internal buffer.

A custom line splitter function can be passed to customize how data is split into lines. This function must accept two arguments, the data to process and any left over data from a previous invocation of the splitter function. The function must also return a tiple of two items, a list of lines and any left over data.

Parameters:splitter (function) – a line splitter function

This Component operates in two modes. In normal operation it’s expected to be used in conjunction with components that expose a Read Event on a “read” channel with only one argument (data). Some builtin components that expose such events are: - circuits.net.sockets.TCPClient - circuits.io.File

The second mode of operation works with circuits.net.sockets.Server components such as TCPServer, UNIXServer, etc. It’s expected that two arguments exist in the Read Event, sock and data. The following two arguments can be passed to affect how unfinished data is stored and retrieved for such components:

Parameters:getBuffer (function) – function to retrieve the buffer for a client sock

This function must accept one argument (sock,) the client socket whoose buffer is to be retrieved.

Parameters:updateBuffer (function) – function to update the buffer for a client sock

This function must accept two arguments (sock, buffer,) the client socket and the left over buffer to be updated.

@note: This Component must be used in conjunction with a Component that
exposes Read events on a “read” Channel.

initializes x; see x.__class__.__doc__ for signature

Functions