An implementation in C++ of the Active Object design pattern