8.2. Data Press

Intent

Quickly process an incoming stream of data packets, without allocating any further memory, by using a long-lived object to interpret each packet in turn.

AKA

None known

8.2.1. Problem

8.2.1.1. Context

You need to efficiently parse a stream of many similar blocks of data, known as packets,[] to route the data stream to its correct destination.

[] en.wikipedia.org/wiki/Packet_(information_technology).

8.2.1.2. Summary
  • You need to minimize the time between receiving a packet and passing it on to its destination, which is known as the latency[] of your component.

    [] en.wikipedia.org/wiki/Latency_(engineering).

  • Your component needs to use as little resource, such as RAM, as possible, irrespective of how much data it processes, to allow the consumer of the data stream as much freedom to utilize it as possible.

  • You wish to reduce the power usage of your component as it handles large volumes of data.

  • Your parsing algorithms need to be flexible and easily maintained to cope with future upgrades and improvements.

8.2.1.3. Description

Data streams are divided up into packets to allow the underlying communication channel to be more easily shared between each of its users. This is because a packet contains a header[] consisting of control information such as the source and destination addresses, error detection codes such as checksums, and sequencing information. The rest of the packet is known as the payload which is the data that the user wishes to send.

[] Some packets ...

Get Common Design Patterns for Symbian OS: The Foundations of Smartphone Software now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.