#include "Plugin.hpp"
#include <string>
#include "../TaskContext.hpp"
#include "../internal/GlobalService.hpp"
Go to the source code of this file.
Namespaces | |
namespace | RTT |
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute. | |
namespace | RTT::plugin |
Defines | |
#define | ORO_GLOBAL_SERVICE_NAMED_PLUGIN(SERVICE, NAME) |
#define | ORO_GLOBAL_SERVICE_PLUGIN(SERVICE) |
#define | ORO_SERVICE_NAMED_PLUGIN(SERVICE, NAME) |
#define | ORO_SERVICE_PLUGIN(SERVICE) |
#define | ORO_SERVICEPLUGIN_str(s) #s |
#define | ORO_SERVICEPLUGIN_xstr(s) ORO_SERVICEPLUGIN_str(s) |
#define ORO_GLOBAL_SERVICE_NAMED_PLUGIN | ( | SERVICE, | |
NAME | |||
) |
extern "C" {\ RTT_EXPORT bool loadRTTPlugin(RTT::TaskContext* tc); \ bool loadRTTPlugin(RTT::TaskContext* tc) { \ if (tc != 0) return false; \ RTT::Service::shared_ptr sp( new SERVICE( tc ) ); \ return RTT::internal::GlobalService::Instance()->addService( sp ); \ } \ RTT_EXPORT RTT::Service::shared_ptr createService(); \ RTT::Service::shared_ptr createService() { \ RTT::Service::shared_ptr sp( new SERVICE( 0 ) ); \ return sp; \ } \ RTT_EXPORT std::string getRTTPluginName(); \ std::string getRTTPluginName() { \ return NAME; \ } \ RTT_EXPORT std::string getRTTTargetName(); \ std::string getRTTTargetName() { \ return OROCOS_TARGET_NAME; \ } \ }
You can use this macro to make any Service available as a global service. The service cannot be loaded into a TaskContext.
SERVICE | A class that inherits from Service and takes a TaskContext* as argument in a constructor. |
NAME | A string being the name of the plugin. |
Definition at line 138 of file ServicePlugin.hpp.
#define ORO_GLOBAL_SERVICE_PLUGIN | ( | SERVICE | ) |
extern "C" { \ RTT_EXPORT bool loadRTTPlugin(RTT::TaskContext* tc); \ bool loadRTTPlugin(RTT::TaskContext* tc) { \ if (tc != 0) return false; \ RTT::Service::shared_ptr sp( new SERVICE( tc ) ); \ return RTT::internal::GlobalService::Instance()->addService( sp ); \ } \ RTT_EXPORT RTT::Service::shared_ptr createService(); \ RTT::Service::shared_ptr createService() { \ RTT::Service::shared_ptr sp( new SERVICE( 0 ) ); \ return sp; \ } \ RTT_EXPORT std::string getRTTPluginName(); \ std::string getRTTPluginName() { \ return ORO_SERVICEPLUGIN_xstr(SERVICE); \ } \ RTT_EXPORT std::string getRTTTargetName(); \ std::string getRTTTargetName() { \ return OROCOS_TARGET_NAME; \ } \ }
You can use this macro to make any Service available as a global service. The service cannot be loaded into a TaskContext.
SERVICE | A class that inherits from Service and takes a TaskContext* as argument in a constructor. The name of the plugin is equal to SERVICE, but the name of the service (ie Service::getName() ) may be different. |
Definition at line 170 of file ServicePlugin.hpp.
#define ORO_SERVICE_NAMED_PLUGIN | ( | SERVICE, | |
NAME | |||
) |
extern "C" {\ RTT_EXPORT bool loadRTTPlugin(RTT::TaskContext* tc); \ bool loadRTTPlugin(RTT::TaskContext* tc) { \ if (tc == 0) return true; \ RTT::Service::shared_ptr sp( new SERVICE( tc ) ); \ return tc->provides()->addService( sp ); \ } \ RTT_EXPORT RTT::Service::shared_ptr createService(); \ RTT::Service::shared_ptr createService() { \ RTT::Service::shared_ptr sp( new SERVICE( 0 ) ); \ return sp; \ } \ RTT_EXPORT std::string getRTTPluginName(); \ std::string getRTTPluginName() { \ return NAME; \ } \ RTT_EXPORT std::string getRTTTargetName(); \ std::string getRTTTargetName() { \ return OROCOS_TARGET_NAME; \ } \ }
You can use this macro to make any Service available as a plugin.
SERVICE | A class that inherits from Service and takes a TaskContext* as argument in a constructor. |
NAME | A string being the name of the plugin. |
Definition at line 72 of file ServicePlugin.hpp.
#define ORO_SERVICE_PLUGIN | ( | SERVICE | ) |
extern "C" { \ RTT_EXPORT bool loadRTTPlugin(RTT::TaskContext* tc); \ bool loadRTTPlugin(RTT::TaskContext* tc) { \ if (tc == 0) return true; \ RTT::Service::shared_ptr sp( new SERVICE( tc ) ); \ return tc->provides()->addService( sp ); \ } \ RTT_EXPORT RTT::Service::shared_ptr createService(); \ RTT::Service::shared_ptr createService() { \ RTT::Service::shared_ptr sp( new SERVICE( 0 ) ); \ return sp; \ } \ RTT_EXPORT std::string getRTTPluginName(); \ std::string getRTTPluginName() { \ return ORO_SERVICEPLUGIN_xstr(SERVICE); \ } \ RTT_EXPORT std::string getRTTTargetName(); \ std::string getRTTTargetName() { \ return OROCOS_TARGET_NAME; \ } \ }
You can use this macro to make any Service available as a plugin.
SERVICE | A class that inherits from Service and takes a TaskContext* as argument in a constructor. The name of the plugin is equal to SERVICE, but the name of the service (ie Service::getName() ) may be different. |
Definition at line 106 of file ServicePlugin.hpp.
#define ORO_SERVICEPLUGIN_str | ( | s | ) | #s |
Definition at line 54 of file ServicePlugin.hpp.
#define ORO_SERVICEPLUGIN_xstr | ( | s | ) | ORO_SERVICEPLUGIN_str(s) |
Definition at line 53 of file ServicePlugin.hpp.