Step 4 - Implementing plugin loader using calculator_loader.cpp

This plugin loader node loads each plugin and inputs the number to each plugin
and fetch's the result from the plugin. We can locate the calculator_loader.cpp file from the chapter_5_codes/pluginlib_calculator/src folder.

Here is the explanation of this code:

#include <boost/shared_ptr.hpp> 
#include <pluginlib/class_loader.h> 
#include <pluginlib_calculator/calculator_base.h> 

These are the necessary header files to load the plugins:

pluginlib::ClassLoader<calculator_base::calc_functions> 
calc_loader("pluginlib_calculator",
"calculator_base::calc_functions");

The pluginlib provides the ClassLoader class, which is inside class_loader.h, to load classes in runtime. We need to provide a name for the loader and the calculator base class as arguments:

   boost::shared_ptr<calculator_base::calc_functions> add = 
calc_loader.createInstance("pluginlib_calculator/Add");

This will create an instance of the Add class using the ClassLoader object:

    add->get_numbers(10.0,10.0); 
    double result = add->operation(); 

These lines give an input and perform the operations in the plugin instance.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.15.229.143