Details
-
Improvement
-
Resolution: Fixed
-
Critical
-
6.5.0
-
None
Description
The current APIs between the server (memcached) and engines (ep, default engine) is a C-style interface consisting of structs containing function pointers. This was because memcached (& default_engine) used to be implemented in C, hence even though ep-engine was C++ the interface between them has to be C.
This is no longer the case however; all of the server & engines compile as C++ - and in fact we already use C++ types in parts of the API (see for example get() in {engine.h}}).
We should convert the APIs between the server & engine to C++ - pure virtual classes. This makes it much easier to trace calls; and improves the type-safely of them.