This is a sandbox encapsulation of Zenoh-c and zenoh-cpp, where possible. It provides this as a plugin design wherein the Zenoh library dependency is within a runtime selectable .so file, and the client API contains no references to Zenoh. The client-side API has an instantiating function for the plugin, that takes a path to the implementation DLL, a pImpl class constructor for the session handle, and pImpl class constructors for the various transport objects. All pImpl references are shared_ptr's. The entire plugin does perform orderly shutdown, so testing alternate implementations from a single test process should be possible. Furthermore, testing between implementation versions within a single test process should be possible.
This is a sandbox encapsulation of Zenoh-c and zenoh-cpp, where possible. It provides this as a plugin design wherein the Zenoh library dependency is within a runtime selectable .so file, and the client API contains no references to Zenoh. The client-side API has an instantiating function for the plugin, that takes a path to the implementation DLL, a pImpl class constructor for the session handle, and pImpl class constructors for the various transport objects. All pImpl references are shared_ptr's. The entire plugin does perform orderly shutdown, so testing alternate implementations from a single test process should be possible. Furthermore, testing between implementation versions within a single test process should be possible.