The Active object pattern
An Active object is a class that decouples method invocations and method executions, and is well suited for fire and forget asynchronous calls. A scheduler attached to the class handles the execution requests. The pattern consists of six elements, which are as follows:
- A proxy, which provides an interface for clients with publicly accessible methods
- An interface that defines the method request on an Active object
- A list of pending requests from clients
- A Scheduler, which decides which request to execute next
- The implementation of the Active object method
- A callback or variable, for the client to receive the result
We will dissect an implementation of the Active object pattern. This program is written for elucidation; for production use, we need to use a bit more sophistication. Attempting a production quality implementation would make the code considerably longer. Let's take a look at the code:
#include <rxcpp/rx.hpp> #include <memory> #include <map>...