class_loader package from class_loader repoclass_loader |
|
Package Summary
Tags | No category tags. |
Version | 2.2.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/class_loader.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2022-01-14 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Geoffrey Biggs
- Michael Carroll
Authors
- Dirk Thomas
- Michel Hidalgo
- Mirza Shah
- Steven! Ragnarök
class_loader
The class_loader package is a ROS-independent package for loading plugins during runtime and the foundation of the higher level ROS pluginlib
library. class_loader utilizes the host operating system’s runtime loader to open runtime libraries (e.g. .so/.dll/dylib files), introspect the library for exported plugin classes, and allows users to instantiate objects of said exported classes without the explicit declaration (i.e. header file) for those classes.
class_loader VS pluginlib
class_loader
is used in the implementation of the higher-level ROS package pluginlib
which is the encouraged method for loading plugins in the ROS ecosystem. You should use class_loader when creating plugins intended for non-ROS packages and pluginlib when exporting plugins to ROS packages.
Quality Declaration
This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.
Usage
The interface is provided through two classes, class_loader::ClassLoader
and class_loader::MultiLibraryClassLoader
. Both provide similar interfaces but the former only binds to a single runtime library whereas the latter can associate with multiple libraries. The typical workflow is as follows:
- Include
class_loader/class_loader.h
in your source code - Instantiate a
class_loader::ClassLoader
object passing the path and name of the library to open
class_loader::ClassLoader loader("libMyLibrary.so");
- Query the class for exported classes which have an interface defined by some base class (MyBase in the example)
std::vector<std::string> classes = loader.getAvailableClasses<MyBase>()
- Create/destroy objects of said exported classes
for(unsigned int c = 0; c < classes.size(); ++c)
{
boost::shared_ptr<MyBase> plugin = loader.createInstance<MyBase>(classes[c]);
plugin->someMethod();
//'plugin' will automatically be deleted when it goes out of scope
}
- Destroy the ClassLoader object to shutdown the library.
Example: Basic Workflow for ClassLoader
#include <class_loader/class_loader.h>
#include "MyBase.h" //Defines class MyBase
int main()
{
class_loader::ClassLoader loader("libMyLibrary.so");
std::vector<std::string> classes = loader.getAvailableClasses<MyBase>();
for(unsigned int c = 0; c < classes.size(); ++c)
{
boost::shared_ptr<MyBase> plugin = loader.createInstance<MyBase>(classes[c]);
plugin->someMethod();
}
}
Visit the class_loader API documentation for a complete list of its main components.
Changelog for package class_loader
2.2.0 (2022-01-14)
- Install includes to include/ (#191)
- Fix include order for cpplint (#192)
- Update maintainers to Geoffrey Biggs and Michael Carroll (#190)
- Fix spelling mistake (#184)
- Contributors: Audrow Nash, David V. Lu!!, Jacob Perron, Shane Loretz
2.1.2 (2021-04-12)
- Remove travis. (#182)
- Contributors: Chris Lalancette
2.1.1 (2021-04-06)
- Change index.ros.org -> docs.ros.org. (#181)
- Contributors: Chris Lalancette
2.1.0 (2021-03-18)
- Fix ternary null check found by clang static analysis (#176)
- Update QD to QL 1 (#177)
- Updated console_bridge QL in QD
- Update package maintainers. (#169)
- enable building a static library (#163)
- Update Quality Declaration to reflect QL 2 (#160).
- Increase coverage with a graveyard behavior test and unmanaged instance test (#159)
- Add Security Vulnerability Policy pointing to REP-2006. (#157)
- Clean up and improve documentation (#156)
- Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Michel Hidalgo, Stephen Brawner, ahcorde, brawner
2.0.1 (2020-05-26)
- Added QD to doxygen related pages (#155)
- Updated class_loader QD (#152)
- fix copy and paste error (#154)
- Fixed warning (#151)
- Increased code coverage (#141)
- Added Doxyfile (#148)
- Added quality declaration draft (#142)
- Contributors: Alejandro Hernández Cordero, Tully Foote
2.0.0 (2020-04-25)
- Export CMake targets in a addition to include directories / libraries. (#147)
- Fixed references to poco in error strings. (#144)
- Removed poco dependency. Shared library management is now provided by rcpputils. (#139)
- Add missing LICENSE file, matching 3-clause BSD (#137)
- Code style change: wrap after open parenthesis if not in one line (#138)
- Fix Travis on macOS. (#135)
- Use .empty() to check for an empty string. (#132)
- Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Jorge Perez
1.4.0 (2019-09-18)
- Fixed setting AbstractMetaObjectBase base class typeid. (#127)
- Corrected export of class_loader library. (#129)
- Reduced the number of threads spun up in stress test. (#128)
- Contributors: Emerson Knapp, Shane Loretz, bpwilcox
1.3.1 (2019-05-08)
- Using ament_target_dependencies when possible (#124)
- Contributors: ivanpauno
1.3.0 (2019-04-12)
- Updated test configuration to check copyright of files where possible. (#123)
- Updated to use ament_target_dependencies where possible. (#121)
- Contributors: ivanpauno, jpsamper2009
1.2.0 (2018-11-16)
- Updated maintainer to Steven! Ragnarok the maintainer (#107)
- Added free impl_ in AbstractMetaObjectBase destructor (#103)
- Overhauled CI.u (#106)
- Fixed spacing to comply with uncrusity 0.67 (#99)
- Updated to use console_bridge_vendor (#98)
- Contributors: Chris Ye, Mikael Arguedas
0.3.2 (2015-04-22)
- Fixed wrong handling of false statement (pkg-config was not installed)
- Make catkin optional again
- Contributors: Esteve Fernandez, Janosch Machowinski, Matthias Goldhoorn
0.3.1 (2014-12-23)
- Depend on boost
- Use FindPoco.cmake from ros/cmake_modules
- Honor BUILD_SHARED_LIBS and do not force building shared libraries.
- Contributors: Esteve Fernandez, Gary Servin, Scott K Logan
0.3.0 (2014-06-25)
- Use system-provided console-bridge
- Contributors: Esteve Fernandez
0.2.5 (2014-03-04)
- Changed format of debug messages so that rosconsole_bridge can correctly parse the prefix
- Improved debug output
0.2.4 (2014-02-12)
- fix race condition with multi threaded library loading (#16)
0.2.3 (2013-08-21)
- fix missing class name in logWarn output
0.2.2 (2013-07-14)
- check for CATKIN_ENABLE_TESTING (#10)
- fix find Poco to return full lib path (#8)
- add missing runtime destination for library under Windows
- add Boosst component system
0.2.1 (2013-06-06)
- improve check for Poco foundation and headers (#7)
0.2.0 (2013-03-13)
- use find_package for Poco/dl instead to make it work on other platforms
- update Poco cmake file to include libdl on non-windows systems
- No longer CATKIN_DEPEND on console_bridge
0.1.27 (2013-01-25)
- change warning message for managed/unmanaged instance mixture in lazy loading mode
0.1.26 (2013-01-17)
- fix all instances marked as unmanaged
0.1.25 (2013-01-16)
- fix redundant destructor definition being pulled into plugin library for metaobjects instead of being contained with libclass_loader.so
0.1.24 (2013-01-14 15:27)
- fix syntax error for logInform
0.1.23 (2013-01-14 15:23)
- downgrade some warning messages to be info/debug
0.1.22 (2013-01-14 15:01)
- add safety checks for mixing of managed/unmanaged mixing as well as pointer equivalency check between graveyard and newly created metaobjects
0.1.21 (2013-01-13)
- fix compile issue on OSX in dependent packages (#3)
- add more debug information
0.1.20 (2012-12-21 16:04)
- first public release for Groovy
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
console_bridge_vendor | |
ament_cmake | |
ament_cmake_ros | |
ament_cmake_gtest | |
ament_lint_auto | |
ament_lint_common | |
rcpputils |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged class_loader at Robotics Stack Exchange
class_loader package from class_loader repoclass_loader |
|
Package Summary
Tags | No category tags. |
Version | 2.5.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/class_loader.git |
VCS Type | git |
VCS Version | iron |
Last Updated | 2023-02-13 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Geoffrey Biggs
Authors
- Dirk Thomas
- Michael Carroll
- Michel Hidalgo
- Mirza Shah
- Steven! Ragnarök
class_loader
The class_loader package is a ROS-independent package for loading plugins during runtime and the foundation of the higher level ROS pluginlib
library. class_loader utilizes the host operating system’s runtime loader to open runtime libraries (e.g. .so/.dll/dylib files), introspect the library for exported plugin classes, and allows users to instantiate objects of said exported classes without the explicit declaration (i.e. header file) for those classes.
class_loader VS pluginlib
class_loader
is used in the implementation of the higher-level ROS package pluginlib
which is the encouraged method for loading plugins in the ROS ecosystem. You should use class_loader when creating plugins intended for non-ROS packages and pluginlib when exporting plugins to ROS packages.
Quality Declaration
This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.
Usage
The interface is provided through two classes, class_loader::ClassLoader
and class_loader::MultiLibraryClassLoader
. Both provide similar interfaces but the former only binds to a single runtime library whereas the latter can associate with multiple libraries. The typical workflow is as follows:
- Include
class_loader/class_loader.h
in your source code - Instantiate a
class_loader::ClassLoader
object passing the path and name of the library to open
class_loader::ClassLoader loader("libMyLibrary.so");
- Query the class for exported classes which have an interface defined by some base class (MyBase in the example)
std::vector<std::string> classes = loader.getAvailableClasses<MyBase>()
- Create/destroy objects of said exported classes
for(unsigned int c = 0; c < classes.size(); ++c)
{
boost::shared_ptr<MyBase> plugin = loader.createInstance<MyBase>(classes[c]);
plugin->someMethod();
//'plugin' will automatically be deleted when it goes out of scope
}
- Destroy the ClassLoader object to shutdown the library.
Example: Basic Workflow for ClassLoader
#include <class_loader/class_loader.h>
#include "MyBase.h" //Defines class MyBase
int main()
{
class_loader::ClassLoader loader("libMyLibrary.so");
std::vector<std::string> classes = loader.getAvailableClasses<MyBase>();
for(unsigned int c = 0; c < classes.size(); ++c)
{
boost::shared_ptr<MyBase> plugin = loader.createInstance<MyBase>(classes[c]);
plugin->someMethod();
}
}
Visit the class_loader API documentation for a complete list of its main components.
Changelog for package class_loader
2.5.0 (2023-02-13)
- make sanitizer happy (#205)
- [rolling] Update maintainers - 2022-11-07 (#206)
- Contributors: Audrow Nash, Chen Lihui
2.4.0 (2022-11-02)
- Remove appveyor configuration. (#204)
- Just fix a typo in a comment. (#203)
- make the meta-object alive in the lifecycle of the registered plugin (#201)
- Contributors: Chen Lihui, Chris Lalancette
2.3.1 (2022-09-13)
- Mirror rolling to ros2
- Contributors: Audrow Nash
2.3.0 (2022-05-10)
2.2.0 (2022-01-14)
- Install includes to include/ (#191)
- Fix include order for cpplint (#192)
- Update maintainers to Geoffrey Biggs and Michael Carroll (#190)
- Fix spelling mistake (#184)
- Contributors: Audrow Nash, David V. Lu!!, Jacob Perron, Shane Loretz
2.1.2 (2021-04-12)
- Remove travis. (#182)
- Contributors: Chris Lalancette
2.1.1 (2021-04-06)
- Change index.ros.org -> docs.ros.org. (#181)
- Contributors: Chris Lalancette
2.1.0 (2021-03-18)
- Fix ternary null check found by clang static analysis (#176)
- Update QD to QL 1 (#177)
- Updated console_bridge QL in QD
- Update package maintainers. (#169)
- enable building a static library (#163)
- Update Quality Declaration to reflect QL 2 (#160).
- Increase coverage with a graveyard behavior test and unmanaged instance test (#159)
- Add Security Vulnerability Policy pointing to REP-2006. (#157)
- Clean up and improve documentation (#156)
- Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Michel Hidalgo, Stephen Brawner, ahcorde, brawner
2.0.1 (2020-05-26)
- Added QD to doxygen related pages (#155)
- Updated class_loader QD (#152)
- fix copy and paste error (#154)
- Fixed warning (#151)
- Increased code coverage (#141)
- Added Doxyfile (#148)
- Added quality declaration draft (#142)
- Contributors: Alejandro Hernández Cordero, Tully Foote
2.0.0 (2020-04-25)
- Export CMake targets in a addition to include directories / libraries. (#147)
- Fixed references to poco in error strings. (#144)
- Removed poco dependency. Shared library management is now provided by rcpputils. (#139)
- Add missing LICENSE file, matching 3-clause BSD (#137)
- Code style change: wrap after open parenthesis if not in one line (#138)
- Fix Travis on macOS. (#135)
- Use .empty() to check for an empty string. (#132)
- Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Jorge Perez
1.4.0 (2019-09-18)
- Fixed setting AbstractMetaObjectBase base class typeid. (#127)
- Corrected export of class_loader library. (#129)
- Reduced the number of threads spun up in stress test. (#128)
- Contributors: Emerson Knapp, Shane Loretz, bpwilcox
1.3.1 (2019-05-08)
- Using ament_target_dependencies when possible (#124)
- Contributors: ivanpauno
1.3.0 (2019-04-12)
- Updated test configuration to check copyright of files where possible. (#123)
- Updated to use ament_target_dependencies where possible. (#121)
- Contributors: ivanpauno, jpsamper2009
1.2.0 (2018-11-16)
- Updated maintainer to Steven! Ragnarok the maintainer (#107)
- Added free impl_ in AbstractMetaObjectBase destructor (#103)
- Overhauled CI.u (#106)
- Fixed spacing to comply with uncrusity 0.67 (#99)
- Updated to use console_bridge_vendor (#98)
- Contributors: Chris Ye, Mikael Arguedas
0.3.2 (2015-04-22)
- Fixed wrong handling of false statement (pkg-config was not installed)
- Make catkin optional again
- Contributors: Esteve Fernandez, Janosch Machowinski, Matthias Goldhoorn
0.3.1 (2014-12-23)
- Depend on boost
- Use FindPoco.cmake from ros/cmake_modules
- Honor BUILD_SHARED_LIBS and do not force building shared libraries.
- Contributors: Esteve Fernandez, Gary Servin, Scott K Logan
0.3.0 (2014-06-25)
- Use system-provided console-bridge
- Contributors: Esteve Fernandez
0.2.5 (2014-03-04)
- Changed format of debug messages so that rosconsole_bridge can correctly parse the prefix
- Improved debug output
0.2.4 (2014-02-12)
- fix race condition with multi threaded library loading (#16)
0.2.3 (2013-08-21)
- fix missing class name in logWarn output
0.2.2 (2013-07-14)
- check for CATKIN_ENABLE_TESTING (#10)
- fix find Poco to return full lib path (#8)
- add missing runtime destination for library under Windows
- add Boosst component system
0.2.1 (2013-06-06)
- improve check for Poco foundation and headers (#7)
0.2.0 (2013-03-13)
- use find_package for Poco/dl instead to make it work on other platforms
- update Poco cmake file to include libdl on non-windows systems
- No longer CATKIN_DEPEND on console_bridge
0.1.27 (2013-01-25)
- change warning message for managed/unmanaged instance mixture in lazy loading mode
0.1.26 (2013-01-17)
- fix all instances marked as unmanaged
0.1.25 (2013-01-16)
- fix redundant destructor definition being pulled into plugin library for metaobjects instead of being contained with libclass_loader.so
0.1.24 (2013-01-14 15:27)
- fix syntax error for logInform
0.1.23 (2013-01-14 15:23)
- downgrade some warning messages to be info/debug
0.1.22 (2013-01-14 15:01)
- add safety checks for mixing of managed/unmanaged mixing as well as pointer equivalency check between graveyard and newly created metaobjects
0.1.21 (2013-01-13)
- fix compile issue on OSX in dependent packages (#3)
- add more debug information
0.1.20 (2012-12-21 16:04)
- first public release for Groovy
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
console_bridge_vendor | |
ament_cmake | |
ament_cmake_ros | |
ament_cmake_gtest | |
ament_lint_auto | |
ament_lint_common | |
rcpputils |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged class_loader at Robotics Stack Exchange
class_loader package from class_loader repoclass_loader |
|
Package Summary
Tags | No category tags. |
Version | 2.7.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/class_loader.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2023-12-26 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Geoffrey Biggs
Authors
- Dirk Thomas
- Michael Carroll
- Michel Hidalgo
- Mirza Shah
- Steven! Ragnarök
class_loader
The class_loader package is a ROS-independent package for loading plugins during runtime and the foundation of the higher level ROS pluginlib
library. class_loader utilizes the host operating system’s runtime loader to open runtime libraries (e.g. .so/.dll/dylib files), introspect the library for exported plugin classes, and allows users to instantiate objects of said exported classes without the explicit declaration (i.e. header file) for those classes.
class_loader VS pluginlib
class_loader
is used in the implementation of the higher-level ROS package pluginlib
which is the encouraged method for loading plugins in the ROS ecosystem. You should use class_loader when creating plugins intended for non-ROS packages and pluginlib when exporting plugins to ROS packages.
Quality Declaration
This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.
Usage
The interface is provided through two classes, class_loader::ClassLoader
and class_loader::MultiLibraryClassLoader
. Both provide similar interfaces but the former only binds to a single runtime library whereas the latter can associate with multiple libraries. The typical workflow is as follows:
- Include
class_loader/class_loader.h
in your source code - Instantiate a
class_loader::ClassLoader
object passing the path and name of the library to open
class_loader::ClassLoader loader("libMyLibrary.so");
- Query the class for exported classes which have an interface defined by some base class (MyBase in the example)
std::vector<std::string> classes = loader.getAvailableClasses<MyBase>()
- Create/destroy objects of said exported classes
for(unsigned int c = 0; c < classes.size(); ++c)
{
boost::shared_ptr<MyBase> plugin = loader.createInstance<MyBase>(classes[c]);
plugin->someMethod();
//'plugin' will automatically be deleted when it goes out of scope
}
- Destroy the ClassLoader object to shutdown the library.
Example: Basic Workflow for ClassLoader
#include <class_loader/class_loader.h>
#include "MyBase.h" //Defines class MyBase
int main()
{
class_loader::ClassLoader loader("libMyLibrary.so");
std::vector<std::string> classes = loader.getAvailableClasses<MyBase>();
for(unsigned int c = 0; c < classes.size(); ++c)
{
boost::shared_ptr<MyBase> plugin = loader.createInstance<MyBase>(classes[c]);
plugin->someMethod();
}
}
Visit the class_loader API documentation for a complete list of its main components.
Changelog for package class_loader
2.7.0 (2023-12-26)
- Remove all uses of ament_target_dependencies. (#210)
- Update to C++17 (#209)
- Contributors: Chris Lalancette
2.6.0 (2023-04-28)
2.5.0 (2023-02-13)
- make sanitizer happy (#205)
- [rolling] Update maintainers - 2022-11-07 (#206)
- Contributors: Audrow Nash, Chen Lihui
2.4.0 (2022-11-02)
- Remove appveyor configuration. (#204)
- Just fix a typo in a comment. (#203)
- make the meta-object alive in the lifecycle of the registered plugin (#201)
- Contributors: Chen Lihui, Chris Lalancette
2.3.1 (2022-09-13)
- Mirror rolling to ros2
- Contributors: Audrow Nash
2.3.0 (2022-05-10)
2.2.0 (2022-01-14)
- Install includes to include/ (#191)
- Fix include order for cpplint (#192)
- Update maintainers to Geoffrey Biggs and Michael Carroll (#190)
- Fix spelling mistake (#184)
- Contributors: Audrow Nash, David V. Lu!!, Jacob Perron, Shane Loretz
2.1.2 (2021-04-12)
- Remove travis. (#182)
- Contributors: Chris Lalancette
2.1.1 (2021-04-06)
- Change index.ros.org -> docs.ros.org. (#181)
- Contributors: Chris Lalancette
2.1.0 (2021-03-18)
- Fix ternary null check found by clang static analysis (#176)
- Update QD to QL 1 (#177)
- Updated console_bridge QL in QD
- Update package maintainers. (#169)
- enable building a static library (#163)
- Update Quality Declaration to reflect QL 2 (#160).
- Increase coverage with a graveyard behavior test and unmanaged instance test (#159)
- Add Security Vulnerability Policy pointing to REP-2006. (#157)
- Clean up and improve documentation (#156)
- Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Michel Hidalgo, Stephen Brawner, ahcorde, brawner
2.0.1 (2020-05-26)
- Added QD to doxygen related pages (#155)
- Updated class_loader QD (#152)
- fix copy and paste error (#154)
- Fixed warning (#151)
- Increased code coverage (#141)
- Added Doxyfile (#148)
- Added quality declaration draft (#142)
- Contributors: Alejandro Hernández Cordero, Tully Foote
2.0.0 (2020-04-25)
- Export CMake targets in a addition to include directories / libraries. (#147)
- Fixed references to poco in error strings. (#144)
- Removed poco dependency. Shared library management is now provided by rcpputils. (#139)
- Add missing LICENSE file, matching 3-clause BSD (#137)
- Code style change: wrap after open parenthesis if not in one line (#138)
- Fix Travis on macOS. (#135)
- Use .empty() to check for an empty string. (#132)
- Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Jorge Perez
1.4.0 (2019-09-18)
- Fixed setting AbstractMetaObjectBase base class typeid. (#127)
- Corrected export of class_loader library. (#129)
- Reduced the number of threads spun up in stress test. (#128)
- Contributors: Emerson Knapp, Shane Loretz, bpwilcox
1.3.1 (2019-05-08)
- Using ament_target_dependencies when possible (#124)
- Contributors: ivanpauno
1.3.0 (2019-04-12)
- Updated test configuration to check copyright of files where possible. (#123)
- Updated to use ament_target_dependencies where possible. (#121)
- Contributors: ivanpauno, jpsamper2009
1.2.0 (2018-11-16)
- Updated maintainer to Steven! Ragnarok the maintainer (#107)
- Added free impl_ in AbstractMetaObjectBase destructor (#103)
- Overhauled CI.u (#106)
- Fixed spacing to comply with uncrusity 0.67 (#99)
- Updated to use console_bridge_vendor (#98)
- Contributors: Chris Ye, Mikael Arguedas
0.3.2 (2015-04-22)
- Fixed wrong handling of false statement (pkg-config was not installed)
- Make catkin optional again
- Contributors: Esteve Fernandez, Janosch Machowinski, Matthias Goldhoorn
0.3.1 (2014-12-23)
- Depend on boost
- Use FindPoco.cmake from ros/cmake_modules
- Honor BUILD_SHARED_LIBS and do not force building shared libraries.
- Contributors: Esteve Fernandez, Gary Servin, Scott K Logan
0.3.0 (2014-06-25)
- Use system-provided console-bridge
- Contributors: Esteve Fernandez
0.2.5 (2014-03-04)
- Changed format of debug messages so that rosconsole_bridge can correctly parse the prefix
- Improved debug output
0.2.4 (2014-02-12)
- fix race condition with multi threaded library loading (#16)
0.2.3 (2013-08-21)
- fix missing class name in logWarn output
0.2.2 (2013-07-14)
- check for CATKIN_ENABLE_TESTING (#10)
- fix find Poco to return full lib path (#8)
- add missing runtime destination for library under Windows
- add Boosst component system
0.2.1 (2013-06-06)
- improve check for Poco foundation and headers (#7)
0.2.0 (2013-03-13)
- use find_package for Poco/dl instead to make it work on other platforms
- update Poco cmake file to include libdl on non-windows systems
- No longer CATKIN_DEPEND on console_bridge
0.1.27 (2013-01-25)
- change warning message for managed/unmanaged instance mixture in lazy loading mode
0.1.26 (2013-01-17)
- fix all instances marked as unmanaged
0.1.25 (2013-01-16)
- fix redundant destructor definition being pulled into plugin library for metaobjects instead of being contained with libclass_loader.so
0.1.24 (2013-01-14 15:27)
- fix syntax error for logInform
0.1.23 (2013-01-14 15:23)
- downgrade some warning messages to be info/debug
0.1.22 (2013-01-14 15:01)
- add safety checks for mixing of managed/unmanaged mixing as well as pointer equivalency check between graveyard and newly created metaobjects
0.1.21 (2013-01-13)
- fix compile issue on OSX in dependent packages (#3)
- add more debug information
0.1.20 (2012-12-21 16:04)
- first public release for Groovy
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
console_bridge_vendor | |
ament_cmake | |
ament_cmake_ros | |
ament_cmake_gtest | |
ament_lint_auto | |
ament_lint_common | |
rcpputils |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged class_loader at Robotics Stack Exchange
class_loader package from class_loader repoclass_loader |
|
Package Summary
Tags | No category tags. |
Version | 2.8.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/class_loader.git |
VCS Type | git |
VCS Version | rolling |
Last Updated | 2024-04-26 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Geoffrey Biggs
Authors
- Dirk Thomas
- Michael Carroll
- Michel Hidalgo
- Mirza Shah
- Steven! Ragnarök
class_loader
The class_loader package is a ROS-independent package for loading plugins during runtime and the foundation of the higher level ROS pluginlib
library. class_loader utilizes the host operating system’s runtime loader to open runtime libraries (e.g. .so/.dll/dylib files), introspect the library for exported plugin classes, and allows users to instantiate objects of said exported classes without the explicit declaration (i.e. header file) for those classes.
class_loader VS pluginlib
class_loader
is used in the implementation of the higher-level ROS package pluginlib
which is the encouraged method for loading plugins in the ROS ecosystem. You should use class_loader when creating plugins intended for non-ROS packages and pluginlib when exporting plugins to ROS packages.
Quality Declaration
This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.
Usage
The interface is provided through two classes, class_loader::ClassLoader
and class_loader::MultiLibraryClassLoader
. Both provide similar interfaces but the former only binds to a single runtime library whereas the latter can associate with multiple libraries. The typical workflow is as follows:
- Include
class_loader/class_loader.h
in your source code - Instantiate a
class_loader::ClassLoader
object passing the path and name of the library to open
class_loader::ClassLoader loader("libMyLibrary.so");
- Query the class for exported classes which have an interface defined by some base class (MyBase in the example)
std::vector<std::string> classes = loader.getAvailableClasses<MyBase>()
- Create/destroy objects of said exported classes
for(unsigned int c = 0; c < classes.size(); ++c)
{
boost::shared_ptr<MyBase> plugin = loader.createInstance<MyBase>(classes[c]);
plugin->someMethod();
//'plugin' will automatically be deleted when it goes out of scope
}
- Destroy the ClassLoader object to shutdown the library.
Example: Basic Workflow for ClassLoader
#include <class_loader/class_loader.h>
#include "MyBase.h" //Defines class MyBase
int main()
{
class_loader::ClassLoader loader("libMyLibrary.so");
std::vector<std::string> classes = loader.getAvailableClasses<MyBase>();
for(unsigned int c = 0; c < classes.size(); ++c)
{
boost::shared_ptr<MyBase> plugin = loader.createInstance<MyBase>(classes[c]);
plugin->someMethod();
}
}
Visit the class_loader API documentation for a complete list of its main components.
Changelog for package class_loader
2.8.0 (2024-04-26)
2.7.0 (2023-12-26)
- Remove all uses of ament_target_dependencies. (#210)
- Update to C++17 (#209)
- Contributors: Chris Lalancette
2.6.0 (2023-04-28)
2.5.0 (2023-02-13)
- make sanitizer happy (#205)
- [rolling] Update maintainers - 2022-11-07 (#206)
- Contributors: Audrow Nash, Chen Lihui
2.4.0 (2022-11-02)
- Remove appveyor configuration. (#204)
- Just fix a typo in a comment. (#203)
- make the meta-object alive in the lifecycle of the registered plugin (#201)
- Contributors: Chen Lihui, Chris Lalancette
2.3.1 (2022-09-13)
- Mirror rolling to ros2
- Contributors: Audrow Nash
2.3.0 (2022-05-10)
2.2.0 (2022-01-14)
- Install includes to include/ (#191)
- Fix include order for cpplint (#192)
- Update maintainers to Geoffrey Biggs and Michael Carroll (#190)
- Fix spelling mistake (#184)
- Contributors: Audrow Nash, David V. Lu!!, Jacob Perron, Shane Loretz
2.1.2 (2021-04-12)
- Remove travis. (#182)
- Contributors: Chris Lalancette
2.1.1 (2021-04-06)
- Change index.ros.org -> docs.ros.org. (#181)
- Contributors: Chris Lalancette
2.1.0 (2021-03-18)
- Fix ternary null check found by clang static analysis (#176)
- Update QD to QL 1 (#177)
- Updated console_bridge QL in QD
- Update package maintainers. (#169)
- enable building a static library (#163)
- Update Quality Declaration to reflect QL 2 (#160).
- Increase coverage with a graveyard behavior test and unmanaged instance test (#159)
- Add Security Vulnerability Policy pointing to REP-2006. (#157)
- Clean up and improve documentation (#156)
- Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Michel Hidalgo, Stephen Brawner, ahcorde, brawner
2.0.1 (2020-05-26)
- Added QD to doxygen related pages (#155)
- Updated class_loader QD (#152)
- fix copy and paste error (#154)
- Fixed warning (#151)
- Increased code coverage (#141)
- Added Doxyfile (#148)
- Added quality declaration draft (#142)
- Contributors: Alejandro Hernández Cordero, Tully Foote
2.0.0 (2020-04-25)
- Export CMake targets in a addition to include directories / libraries. (#147)
- Fixed references to poco in error strings. (#144)
- Removed poco dependency. Shared library management is now provided by rcpputils. (#139)
- Add missing LICENSE file, matching 3-clause BSD (#137)
- Code style change: wrap after open parenthesis if not in one line (#138)
- Fix Travis on macOS. (#135)
- Use .empty() to check for an empty string. (#132)
- Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Jorge Perez
1.4.0 (2019-09-18)
- Fixed setting AbstractMetaObjectBase base class typeid. (#127)
- Corrected export of class_loader library. (#129)
- Reduced the number of threads spun up in stress test. (#128)
- Contributors: Emerson Knapp, Shane Loretz, bpwilcox
1.3.1 (2019-05-08)
- Using ament_target_dependencies when possible (#124)
- Contributors: ivanpauno
1.3.0 (2019-04-12)
- Updated test configuration to check copyright of files where possible. (#123)
- Updated to use ament_target_dependencies where possible. (#121)
- Contributors: ivanpauno, jpsamper2009
1.2.0 (2018-11-16)
- Updated maintainer to Steven! Ragnarok the maintainer (#107)
- Added free impl_ in AbstractMetaObjectBase destructor (#103)
- Overhauled CI.u (#106)
- Fixed spacing to comply with uncrusity 0.67 (#99)
- Updated to use console_bridge_vendor (#98)
- Contributors: Chris Ye, Mikael Arguedas
0.3.2 (2015-04-22)
- Fixed wrong handling of false statement (pkg-config was not installed)
- Make catkin optional again
- Contributors: Esteve Fernandez, Janosch Machowinski, Matthias Goldhoorn
0.3.1 (2014-12-23)
- Depend on boost
- Use FindPoco.cmake from ros/cmake_modules
- Honor BUILD_SHARED_LIBS and do not force building shared libraries.
- Contributors: Esteve Fernandez, Gary Servin, Scott K Logan
0.3.0 (2014-06-25)
- Use system-provided console-bridge
- Contributors: Esteve Fernandez
0.2.5 (2014-03-04)
- Changed format of debug messages so that rosconsole_bridge can correctly parse the prefix
- Improved debug output
0.2.4 (2014-02-12)
- fix race condition with multi threaded library loading (#16)
0.2.3 (2013-08-21)
- fix missing class name in logWarn output
0.2.2 (2013-07-14)
- check for CATKIN_ENABLE_TESTING (#10)
- fix find Poco to return full lib path (#8)
- add missing runtime destination for library under Windows
- add Boosst component system
0.2.1 (2013-06-06)
- improve check for Poco foundation and headers (#7)
0.2.0 (2013-03-13)
- use find_package for Poco/dl instead to make it work on other platforms
- update Poco cmake file to include libdl on non-windows systems
- No longer CATKIN_DEPEND on console_bridge
0.1.27 (2013-01-25)
- change warning message for managed/unmanaged instance mixture in lazy loading mode
0.1.26 (2013-01-17)
- fix all instances marked as unmanaged
0.1.25 (2013-01-16)
- fix redundant destructor definition being pulled into plugin library for metaobjects instead of being contained with libclass_loader.so
0.1.24 (2013-01-14 15:27)
- fix syntax error for logInform
0.1.23 (2013-01-14 15:23)
- downgrade some warning messages to be info/debug
0.1.22 (2013-01-14 15:01)
- add safety checks for mixing of managed/unmanaged mixing as well as pointer equivalency check between graveyard and newly created metaobjects
0.1.21 (2013-01-13)
- fix compile issue on OSX in dependent packages (#3)
- add more debug information
0.1.20 (2012-12-21 16:04)
- first public release for Groovy
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
console_bridge_vendor | |
ament_cmake | |
ament_cmake_ros | |
ament_cmake_gtest | |
ament_lint_auto | |
ament_lint_common | |
rcpputils |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged class_loader at Robotics Stack Exchange
class_loader package from class_loader repoclass_loader |
|
Package Summary
Tags | No category tags. |
Version | 0.5.0 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/class_loader.git |
VCS Type | git |
VCS Version | noetic-devel |
Last Updated | 2024-01-09 |
Dev Status | MAINTAINED |
CI status |
|
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Michael Carroll
- Michel Hidalgo
Authors
- Mirza Shah
- Steven! Ragnarök
Changelog for package class_loader
0.5.0 (2020-02-07)
- Declare specific boost dependencies. (#136)
- Contributors: Mikael Arguedas
0.4.2 (2020-02-07)
- Add Python 3 support to header update scripts. (#122)
- Set test dll runtime output to CATKIN_PACKAGE_BIN_DESTINATION on Windows. (#113)
- Improve warning message formatting and detail. (#108)
- Add export to variable in order to allow builds on Windows. (#102)
- Ignore warnings about import/exports when deriving from std classes on MSVC. (#116)
- Use #pragma message() to print out warnings in MSVC. (#114)
- Avoid including Poco headers globally. (#115)
- Make Steven! Ragnarok the maintainer (#107)
- Fix non-defined CMake variable (forward-port to Melodic). (#97)
- Contributors: James Xu, Johnson Shih, Markus Grimm, Mikael Arguedas, Robert Haschke
0.4.1 (2018-04-27)
- Provide std::shared_ptr interface (#95)
- Windows compat and style fixups
(#90)
- add visibility macros to public functions
- rename private namespace 'class_loader_private' to 'impl' to match ros2 branch
- use new headers to build library (#93)
- Contributors: Mikael Arguedas
0.4.0 (2018-02-15)
- Stop checking for c++11 support (#87) all Melodic targeted platforms use gnu++14 so checking and forcing -std=c++11 doesn't make sense anymore
- [ABI breaking] use std::string references for exceptions (#86)
- deprecate .h headers in favor of .hpp headers (#81)
- provide a script with exhaustive rules for header replacement
- comply with package format2 xsd (#83)
- [ABI breaking] Exceptions fixups
(#82)
- inline exceptions
- use throw statement rather than function
- [linter] add nolint for global std::string used for testing (#79)
- use auto for all for loops iterating on vectors/maps (#78)
- Add systemLibraryFormat and systemLibraryPrefix functions (#77)
- [ABI breaking] Bring melodic-devel closer to ros2 branch
(#76)
- comply with extra and pedantic compiler flags
- use c++11 nullptr instead of NULL
- make ABI breaking change for explicit constructors
- make linters happy
- no need to support console_bridge < 0.3.0 anymore
- remove obsolete todo
- add virtual destructor in test
- vector size() returns size_t
- simplify branching
- [fix warnings] c++11 requires at least one argument for ... (#71)
- [linter] Use std::string::empty instead comparing with an empty string (#69)
- [linter] wrap console bridge invocation lines (#68)
- OSRF and not willow in licence header (#67)
- Contributors: David Wagner, Mikael Arguedas
0.3.8 (2017-11-16)
- Fix console_bridge marcos definition (#66)
- Style overhaul (#64) (#62)
- Add copyright notice to unique_ptr_test.cpp (#65)
- Contributors: Maarten de Vries, Mikael Arguedas
0.3.7 (2017-07-27)
- switch to package format 2 (#56)
- remove trailing whitespaces (#55)
- use CONSOLE_BRIDGE_X logging macros (#52)
- Contributors: Mikael Arguedas, jmachowinski
0.3.6 (2016-10-24)
- Made changes to two locking mechanisms inside class loader core's loadLibrary() function: 1) I added a lock to the 'addClassLoaderOwnerFor...' function to protect it against a race condition with the unloadLibrary() function. 2) I also raised the loader lock to cover the whole function. Previously the check to see if a library is already loaded and the actual loading of the library was not atomic. Multiple threads could create shared library objects, for example.
- Contributors: Jonathan Meyer
0.3.5 (2016-09-20)
- Add ClassLoader::createUniqueInstance
(#38)
- Wrap comments on createInstance and friend.
- Delegate createInstance and createUnmanagedInstance to private impl.
- Add ClassLoader::createUniqueInstance.
- MultiLibraryClassLoader: Factor out getClassLoaderForClass.
- MultiLibraryClassLoader: Add unique_ptr API.
- Add tests for unique_ptr API.
- Contributors: Maarten de Vries
0.3.4 (2016-06-22)
- cleanup: don't use active_class_loaders_[library_path] for
existence test
(#35)
- cleanup: don't use active_class_loaders_[library_path] for existence test
- this accumulates map entries with NULL pointer
- fixing it, allows some cleanup
- list headers in CodeBlocks / QtCreator
- explicitly list all headers
- Merge pull request #34 from rhaschke/fix-on-demand-unloading fix on demand unloading
- Merge pull request #32 from saarnold/fixed_unset_variable_evaluation fixed evaluation of undefined variable
- fixed evaluation of undefined variable
- not unloading the ClassLoaders (to avoid the SEVERE WARNING) doesn't work either
- bugfix: enable on-demand loading/unloading with MultiClassLoader
- enforce loading of library in loadLibrary(), otherwise we cannot know
- don't unload libraries in destructor when on-demand-unloading is enabled
- extra utest: MultiClassLoaderTest.lazyLoad succeeds two times in a row?
- added MultiLibraryClassLoader unittest
- Contributors: Mikael Arguedas, Robert Haschke, Sascha Arnold
0.3.3 (2016-03-10)
- update maintainer
- Merge pull request #26 from goldhoorn/indigo-devel Added option to disable the catkin build
- Added option to disable the catkin build
- Contributors: Esteve Fernandez, Matthias Goldhoorn, Mikael Arguedas
0.3.2 (2015-04-22)
- Fixed wrong handling of false statement (pkg-config was not installed)
- Make catkin optional again
- Contributors: Esteve Fernandez, Janosch Machowinski, Matthias Goldhoorn
0.3.1 (2014-12-23)
- Depend on boost
- Use FindPoco.cmake from ros/cmake_modules
- Honor BUILD_SHARED_LIBS and do not force building shared libraries.
- Contributors: Esteve Fernandez, Gary Servin, Scott K Logan
0.3.0 (2014-06-25)
- Use system-provided console-bridge
- Contributors: Esteve Fernandez
0.2.5 (2014-03-04)
- Changed format of debug messages so that rosconsole_bridge can correctly parse the prefix
- Improved debug output
0.2.4 (2014-02-12)
- fix race condition with multi threaded library loading (#16)
0.2.3 (2013-08-21)
- fix missing class name in logWarn output
0.2.2 (2013-07-14)
- check for CATKIN_ENABLE_TESTING (#10)
- fix find Poco to return full lib path (#8)
- add missing runtime destination for library under Windows
- add Boosst component system
0.2.1 (2013-06-06)
- improve check for Poco foundation and headers (#7)
0.2.0 (2013-03-13)
- use find_package for Poco/dl instead to make it work on other platforms
- update Poco cmake file to include libdl on non-windows systems
- No longer CATKIN_DEPEND on console_bridge
0.1.27 (2013-01-25)
- change warning message for managed/unmanaged instance mixture in lazy loading mode
0.1.26 (2013-01-17)
- fix all instances marked as unmanaged
0.1.25 (2013-01-16)
- fix redundant destructor definition being pulled into plugin library for metaobjects instead of being contained with libclass_loader.so
0.1.24 (2013-01-14 15:27)
- fix syntax error for logInform
0.1.23 (2013-01-14 15:23)
- downgrade some warning messages to be info/debug
0.1.22 (2013-01-14 15:01)
- add safety checks for mixing of managed/unmanaged mixing as well as pointer equivalency check between graveyard and newly created metaobjects
0.1.21 (2013-01-13)
- fix compile issue on OSX in dependent packages (#3)
- add more debug information
0.1.20 (2012-12-21 16:04)
- first public release for Groovy
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged class_loader at Robotics Stack Exchange
class_loader package from class_loader repoclass_loader |
|
Package Summary
Tags | No category tags. |
Version | 2.1.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/class_loader.git |
VCS Type | git |
VCS Version | galactic |
Last Updated | 2021-04-12 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Michael Carroll
- Michel Hidalgo
Authors
- Mirza Shah
- Dirk Thomas
- Steven! Ragnarök
class_loader
The class_loader package is a ROS-independent package for loading plugins during runtime and the foundation of the higher level ROS pluginlib
library. class_loader utilizes the host operating system’s runtime loader to open runtime libraries (e.g. .so/.dll/dylib files), introspect the library for exported plugin classes, and allows users to instantiate objects of said exported classes without the explicit declaration (i.e. header file) for those classes.
class_loader VS pluginlib
class_loader
is used in the implementation of the higher-level ROS package pluginlib
which is the encouraged method for loading plugins in the ROS ecosystem. You should use class_loader when creating plugins intended for non-ROS packages and pluginlib when exporting plugins to ROS packages.
Quality Declaration
This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.
Usage
The interface is provided through two classes, class_loader::ClassLoader
and class_loader::MultiLibraryClassLoader
. Both provide similar interfaces but the former only binds to a single runtime library whereas the latter can associate with multiple libraries. The typical workflow is as follows:
- Include
class_loader/class_loader.h
in your source code - Instantiate a
class_loader::ClassLoader
object passing the path and name of the library to open
class_loader::ClassLoader loader("libMyLibrary.so");
- Query the class for exported classes which have an interface defined by some base class (MyBase in the example)
std::vector<std::string> classes = loader.getAvailableClasses<MyBase>()
- Create/destroy objects of said exported classes
for(unsigned int c = 0; c < classes.size(); ++c)
{
boost::shared_ptr<MyBase> plugin = loader.createInstance<MyBase>(classes[c]);
plugin->someMethod();
//'plugin' will automatically be deleted when it goes out of scope
}
- Destroy the ClassLoader object to shutdown the library.
Example: Basic Workflow for ClassLoader
#include <class_loader/class_loader.h>
#include "MyBase.h" //Defines class MyBase
int main()
{
class_loader::ClassLoader loader("libMyLibrary.so");
std::vector<std::string> classes = loader.getAvailableClasses<MyBase>();
for(unsigned int c = 0; c < classes.size(); ++c)
{
boost::shared_ptr<MyBase> plugin = loader.createInstance<MyBase>(classes[c]);
plugin->someMethod();
}
}
Visit the class_loader API documentation for a complete list of its main components.
Changelog for package class_loader
2.1.2 (2021-04-12)
- Remove travis. (#182)
- Contributors: Chris Lalancette
2.1.1 (2021-04-06)
- Change index.ros.org -> docs.ros.org. (#181)
- Contributors: Chris Lalancette
2.1.0 (2021-03-18)
- Fix ternary null check found by clang static analysis (#176)
- Update QD to QL 1 (#177)
- Updated console_bridge QL in QD
- Update package maintainers. (#169)
- enable building a static library (#163)
- Update Quality Declaration to reflect QL 2 (#160).
- Increase coverage with a graveyard behavior test and unmanaged instance test (#159)
- Add Security Vulnerability Policy pointing to REP-2006. (#157)
- Clean up and improve documentation (#156)
- Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Michel Hidalgo, Stephen Brawner, ahcorde, brawner
2.0.1 (2020-05-26)
- Added QD to doxygen related pages (#155)
- Updated class_loader QD (#152)
- fix copy and paste error (#154)
- Fixed warning (#151)
- Increased code coverage (#141)
- Added Doxyfile (#148)
- Added quality declaration draft (#142)
- Contributors: Alejandro Hernández Cordero, Tully Foote
2.0.0 (2020-04-25)
- Export CMake targets in a addition to include directories / libraries. (#147)
- Fixed references to poco in error strings. (#144)
- Removed poco dependency. Shared library management is now provided by rcpputils. (#139)
- Add missing LICENSE file, matching 3-clause BSD (#137)
- Code style change: wrap after open parenthesis if not in one line (#138)
- Fix Travis on macOS. (#135)
- Use .empty() to check for an empty string. (#132)
- Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Jorge Perez
1.4.0 (2019-09-18)
- Fixed setting AbstractMetaObjectBase base class typeid. (#127)
- Corrected export of class_loader library. (#129)
- Reduced the number of threads spun up in stress test. (#128)
- Contributors: Emerson Knapp, Shane Loretz, bpwilcox
1.3.1 (2019-05-08)
- Using ament_target_dependencies when possible (#124)
- Contributors: ivanpauno
1.3.0 (2019-04-12)
- Updated test configuration to check copyright of files where possible. (#123)
- Updated to use ament_target_dependencies where possible. (#121)
- Contributors: ivanpauno, jpsamper2009
1.2.0 (2018-11-16)
- Updated maintainer to Steven! Ragnarok the maintainer (#107)
- Added free impl_ in AbstractMetaObjectBase destructor (#103)
- Overhauled CI.u (#106)
- Fixed spacing to comply with uncrusity 0.67 (#99)
- Updated to use console_bridge_vendor (#98)
- Contributors: Chris Ye, Mikael Arguedas
0.3.2 (2015-04-22)
- Fixed wrong handling of false statement (pkg-config was not installed)
- Make catkin optional again
- Contributors: Esteve Fernandez, Janosch Machowinski, Matthias Goldhoorn
0.3.1 (2014-12-23)
- Depend on boost
- Use FindPoco.cmake from ros/cmake_modules
- Honor BUILD_SHARED_LIBS and do not force building shared libraries.
- Contributors: Esteve Fernandez, Gary Servin, Scott K Logan
0.3.0 (2014-06-25)
- Use system-provided console-bridge
- Contributors: Esteve Fernandez
0.2.5 (2014-03-04)
- Changed format of debug messages so that rosconsole_bridge can correctly parse the prefix
- Improved debug output
0.2.4 (2014-02-12)
- fix race condition with multi threaded library loading (#16)
0.2.3 (2013-08-21)
- fix missing class name in logWarn output
0.2.2 (2013-07-14)
- check for CATKIN_ENABLE_TESTING (#10)
- fix find Poco to return full lib path (#8)
- add missing runtime destination for library under Windows
- add Boosst component system
0.2.1 (2013-06-06)
- improve check for Poco foundation and headers (#7)
0.2.0 (2013-03-13)
- use find_package for Poco/dl instead to make it work on other platforms
- update Poco cmake file to include libdl on non-windows systems
- No longer CATKIN_DEPEND on console_bridge
0.1.27 (2013-01-25)
- change warning message for managed/unmanaged instance mixture in lazy loading mode
0.1.26 (2013-01-17)
- fix all instances marked as unmanaged
0.1.25 (2013-01-16)
- fix redundant destructor definition being pulled into plugin library for metaobjects instead of being contained with libclass_loader.so
0.1.24 (2013-01-14 15:27)
- fix syntax error for logInform
0.1.23 (2013-01-14 15:23)
- downgrade some warning messages to be info/debug
0.1.22 (2013-01-14 15:01)
- add safety checks for mixing of managed/unmanaged mixing as well as pointer equivalency check between graveyard and newly created metaobjects
0.1.21 (2013-01-13)
- fix compile issue on OSX in dependent packages (#3)
- add more debug information
0.1.20 (2012-12-21 16:04)
- first public release for Groovy
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
console_bridge_vendor | |
ament_cmake | |
ament_cmake_ros | |
ament_cmake_gtest | |
ament_lint_auto | |
ament_lint_common | |
rcpputils |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged class_loader at Robotics Stack Exchange
class_loader package from class_loader repoclass_loader |
|
Package Summary
Tags | No category tags. |
Version | 0.4.2 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/class_loader.git |
VCS Type | git |
VCS Version | melodic-devel |
Last Updated | 2021-12-07 |
Dev Status | MAINTAINED |
CI status |
|
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Michael Carroll
- Geoffrey Biggs
Authors
- Mirza Shah
- Steven! Ragnarök
Changelog for package class_loader
0.4.2 (2020-02-07)
- Add Python 3 support to header update scripts. (#122)
- Set test dll runtime output to CATKIN_PACKAGE_BIN_DESTINATION on Windows. (#113)
- Improve warning message formatting and detail. (#108)
- Add export to variable in order to allow builds on Windows. (#102)
- Ignore warnings about import/exports when deriving from std classes on MSVC. (#116)
- Use #pragma message() to print out warnings in MSVC. (#114)
- Avoid including Poco headers globally. (#115)
- Make Steven! Ragnarok the maintainer (#107)
- Fix non-defined CMake variable (forward-port to Melodic). (#97)
- Contributors: James Xu, Johnson Shih, Markus Grimm, Mikael Arguedas, Robert Haschke
0.4.1 (2018-04-27)
- Provide std::shared_ptr interface (#95)
- Windows compat and style fixups
(#90)
- add visibility macros to public functions
- rename private namespace 'class_loader_private' to 'impl' to match ros2 branch
- use new headers to build library (#93)
- Contributors: Mikael Arguedas
0.4.0 (2018-02-15)
- Stop checking for c++11 support (#87) all Melodic targeted platforms use gnu++14 so checking and forcing -std=c++11 doesn't make sense anymore
- [ABI breaking] use std::string references for exceptions (#86)
- deprecate .h headers in favor of .hpp headers (#81)
- provide a script with exhaustive rules for header replacement
- comply with package format2 xsd (#83)
- [ABI breaking] Exceptions fixups
(#82)
- inline exceptions
- use throw statement rather than function
- [linter] add nolint for global std::string used for testing (#79)
- use auto for all for loops iterating on vectors/maps (#78)
- Add systemLibraryFormat and systemLibraryPrefix functions (#77)
- [ABI breaking] Bring melodic-devel closer to ros2 branch
(#76)
- comply with extra and pedantic compiler flags
- use c++11 nullptr instead of NULL
- make ABI breaking change for explicit constructors
- make linters happy
- no need to support console_bridge < 0.3.0 anymore
- remove obsolete todo
- add virtual destructor in test
- vector size() returns size_t
- simplify branching
- [fix warnings] c++11 requires at least one argument for ... (#71)
- [linter] Use std::string::empty instead comparing with an empty string (#69)
- [linter] wrap console bridge invocation lines (#68)
- OSRF and not willow in licence header (#67)
- Contributors: David Wagner, Mikael Arguedas
0.3.8 (2017-11-16)
- Fix console_bridge marcos definition (#66)
- Style overhaul (#64) (#62)
- Add copyright notice to unique_ptr_test.cpp (#65)
- Contributors: Maarten de Vries, Mikael Arguedas
0.3.7 (2017-07-27)
- switch to package format 2 (#56)
- remove trailing whitespaces (#55)
- use CONSOLE_BRIDGE_X logging macros (#52)
- Contributors: Mikael Arguedas, jmachowinski
0.3.6 (2016-10-24)
- Made changes to two locking mechanisms inside class loader core's loadLibrary() function: 1) I added a lock to the 'addClassLoaderOwnerFor...' function to protect it against a race condition with the unloadLibrary() function. 2) I also raised the loader lock to cover the whole function. Previously the check to see if a library is already loaded and the actual loading of the library was not atomic. Multiple threads could create shared library objects, for example.
- Contributors: Jonathan Meyer
0.3.5 (2016-09-20)
- Add ClassLoader::createUniqueInstance
(#38)
- Wrap comments on createInstance and friend.
- Delegate createInstance and createUnmanagedInstance to private impl.
- Add ClassLoader::createUniqueInstance.
- MultiLibraryClassLoader: Factor out getClassLoaderForClass.
- MultiLibraryClassLoader: Add unique_ptr API.
- Add tests for unique_ptr API.
- Contributors: Maarten de Vries
0.3.4 (2016-06-22)
- cleanup: don't use active_class_loaders_[library_path] for
existence test
(#35)
- cleanup: don't use active_class_loaders_[library_path] for existence test
- this accumulates map entries with NULL pointer
- fixing it, allows some cleanup
- list headers in CodeBlocks / QtCreator
- explicitly list all headers
- Merge pull request #34 from rhaschke/fix-on-demand-unloading fix on demand unloading
- Merge pull request #32 from saarnold/fixed_unset_variable_evaluation fixed evaluation of undefined variable
- fixed evaluation of undefined variable
- not unloading the ClassLoaders (to avoid the SEVERE WARNING) doesn't work either
- bugfix: enable on-demand loading/unloading with MultiClassLoader
- enforce loading of library in loadLibrary(), otherwise we cannot know
- don't unload libraries in destructor when on-demand-unloading is enabled
- extra utest: MultiClassLoaderTest.lazyLoad succeeds two times in a row?
- added MultiLibraryClassLoader unittest
- Contributors: Mikael Arguedas, Robert Haschke, Sascha Arnold
0.3.3 (2016-03-10)
- update maintainer
- Merge pull request #26 from goldhoorn/indigo-devel Added option to disable the catkin build
- Added option to disable the catkin build
- Contributors: Esteve Fernandez, Matthias Goldhoorn, Mikael Arguedas
0.3.2 (2015-04-22)
- Fixed wrong handling of false statement (pkg-config was not installed)
- Make catkin optional again
- Contributors: Esteve Fernandez, Janosch Machowinski, Matthias Goldhoorn
0.3.1 (2014-12-23)
- Depend on boost
- Use FindPoco.cmake from ros/cmake_modules
- Honor BUILD_SHARED_LIBS and do not force building shared libraries.
- Contributors: Esteve Fernandez, Gary Servin, Scott K Logan
0.3.0 (2014-06-25)
- Use system-provided console-bridge
- Contributors: Esteve Fernandez
0.2.5 (2014-03-04)
- Changed format of debug messages so that rosconsole_bridge can correctly parse the prefix
- Improved debug output
0.2.4 (2014-02-12)
- fix race condition with multi threaded library loading (#16)
0.2.3 (2013-08-21)
- fix missing class name in logWarn output
0.2.2 (2013-07-14)
- check for CATKIN_ENABLE_TESTING (#10)
- fix find Poco to return full lib path (#8)
- add missing runtime destination for library under Windows
- add Boosst component system
0.2.1 (2013-06-06)
- improve check for Poco foundation and headers (#7)
0.2.0 (2013-03-13)
- use find_package for Poco/dl instead to make it work on other platforms
- update Poco cmake file to include libdl on non-windows systems
- No longer CATKIN_DEPEND on console_bridge
0.1.27 (2013-01-25)
- change warning message for managed/unmanaged instance mixture in lazy loading mode
0.1.26 (2013-01-17)
- fix all instances marked as unmanaged
0.1.25 (2013-01-16)
- fix redundant destructor definition being pulled into plugin library for metaobjects instead of being contained with libclass_loader.so
0.1.24 (2013-01-14 15:27)
- fix syntax error for logInform
0.1.23 (2013-01-14 15:23)
- downgrade some warning messages to be info/debug
0.1.22 (2013-01-14 15:01)
- add safety checks for mixing of managed/unmanaged mixing as well as pointer equivalency check between graveyard and newly created metaobjects
0.1.21 (2013-01-13)
- fix compile issue on OSX in dependent packages (#3)
- add more debug information
0.1.20 (2012-12-21 16:04)
- first public release for Groovy