I suggest that in your initial design/implement an ASYNC (in the protocol sense, not system I/O sense) C++ API which leverages the C API's ASYNC routines. Once this is implemented, then you can design a C++ SYNC API layered upon your C++ ASYNC API. Kurt