Laying down the foundations with an SDK
The first step is to implement the classes that will be shared between our application and the workers. To do so, we are going to rely on a custom SDK. If you need to refresh your memory about this technique, take a look at Chapter 8, Animations – It's Alive, Alive!.
As a reminder, here is the diagram that describes the SDK:

Let's look at the job of each of these components:
- The
Message
component encapsulates a piece of information that is exchanged between the application and the worker. - The
JobRequest
component contains the necessary information to dispatch a proper job to a worker. - The
JobResult
component contains the result of the Mandelbrot set calculation for a given line. - The
MessageUtils
component contains helper functions to serialize/deserialize data across the TCP socket.
All these files have to be accessible from each side of our IPC mechanism (application and worker). Note that the SDK will contain only header files. We did it on purpose to simplify...