Use this macro to register a single component in a shared library (plug-in).

You can only use this macro once in a .cpp file for the whole shared library and you may not link with another component library when using this macro. Use ORO_CREATE_COMPONENT_LIBRARY if you are in that situation.

It adds a function 'createComponent', which will return a new instance of the library's component type and a function 'getComponentType', which returns the type (namespace::class) name of the component.

The advantage of this approach is that the user does not need to know the class name of the component, he just needs to locate the shared library itself. The disadvantage is that only one component type per shared library can be created.

Use this macro to register multiple components in a shared library (plug-in).

For each component, add this line in the .cpp file. Use this macro in combination with ORO_CREATE_COMPONENT_LIBRARY.

The advantage of this approach is that one library can create different component types and that you may link multiple component libraries with each other.

This macro can be used for both shared and static libraries. In case of a shared library, the component factory will be registered to the shared library's local FactoryMap. In case of a static library, the component factory will be registered in the static library's global FactoryMap. In both cases, the DeploymentComponent can access these factories and create the registered component types.