Building a plugin manager in libRoadRunner

Every effort we put in plan B is the effort we take away from plan A. 

The community bonding period is now coming to an end. I have used this community bonding period to make a demo application and base to work on. I have designed a platform-independent plugin manager. Also, the dynamic library can use host functionality. My mentor gives me an example and based on it I designed https://github.com/debashish05/PluginSystem. Also, I have introduced to all the members of the Sauro Lab. Then I deployed this plugin manager to the libRoadRunner. Meanwhile while covering some c++ concept I came across a channel which describes some key feature and basic c++ if you have time and interested you can check it out https://www.youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb. I first thought of using the poco shared library to load plugin but then I decided to stick on functions provided by OS. Although it tough and then I have to take care of platform dependency.

Windows and Linux provide a different function to load the library whereas mac has the same functions as Linux. This blog helps me in that https://www.codeproject.com/Articles/13501/Platform-Independent-Coding-DLLs-and-SOs. For those who are looking to learn CMake here is a brief tutorial for it http://derekmolloy.ie/hello-world-introductions-to-cmake/. I have gone through it last year and revised it again. And in case of any other problem refer to StackOverflow and cmake official documentation.

Also, if you want to check platform independence don't go with windows bash if your software is heavy. Windows bash is not able to optimize the resources well and not giving high efficiency which results is huge build time. You can go with a virtual box if your hardware is good otherwise go with dual boot (which is best in case your software is heavy).

While debugging I came across one library function getLastError() which will return the last error that has been occurred. It is windows specific. Linux has errno for this.

Now I will start on with upgrading the plugin manager and plugin. I hope everyone is safe in this pandemic period. In case if any reader would like me to talk about something please let me know in the comments sections. Enjoy your life and keep learning :)
   

Comments

Popular posts from this blog

End of GSoC 2.0

Monte Carlo Bootstrap

Provided all Libroadrunner functions to plugins using RoadRunner C API