August'24: Kamaelia is in maintenance mode and will recieve periodic updates, about twice a year, primarily targeted around Python 3 and ecosystem compatibility. PRs are always welcome. Latest Release: 1.14.32 (2024/3/24)
A component that fixes the message size of an input stream to a given value, outputting blocks of that size when sufficient input has accumulated. This component's input is stream orientated - all messages received are concatenated to the interal buffer without divisions.
Chunkifying a console reader:
pipeline(
ConsoleReader(eol=""),
Chunkifier(20),
ConsoleEchoer()
).run()
Messages received on the "inbox" are buffered until at least N bytes have been collected. A message containing those first N bytes is sent out "outbox". A CharacterFIFO object is used to do this in linear time.
The usual sending of a producerFinished/shutdown to the "control" inbox will shut it down.
Chunkifier([chunksize]) -> new Chunkifier component.
Flow controller - collects incoming data and outputs it only as quanta of a given length in bytes (chunksize), unless the input stream ends (producerFinished).
Keyword arguments: - chunksize -- Chunk size in bytes - nodelay -- if set to True, partial chunks will be output rather than buffering up data while waiting for more to arrive.
Warning!
You should be using the inbox/outbox interface, not these methods (except construction). This documentation is designed as a roadmap as to their functionalilty for maintainers and new component developers.
Got a problem with the documentation? Something unclear that could be clearer? Want to help improve it? Constructive criticism is very welcome - especially if you can suggest a better rewording!
Please leave you feedback here in reply to the documentation thread in the Kamaelia blog.
-- Automatic documentation generator, 05 Jun 2009 at 03:01:38 UTC/GMT