re-write AsyncCommClient by C to by C++