Add UAVCAN_NO_GLOBAL_DATA_TYPE_REGISTRY flag to allow the global data type registry to be disabled

This commit is contained in:
Ben Dyer 2015-08-21 15:57:04 +10:00
parent 3ae5400aa5
commit cfa77b13a4
2 changed files with 9 additions and 0 deletions

View File

@ -100,6 +100,13 @@
# define UAVCAN_TINY 0
#endif
/**
* Disable the global data type registry, which can save some space on embedded systems.
*/
#ifndef UAVCAN_NO_GLOBAL_DATA_TYPE_REGISTRY
# define UAVCAN_NO_GLOBAL_DATA_TYPE_REGISTRY 1
#endif
/**
* toString() methods will be disabled by default, unless the library is built for a general-purpose target like Linux.
* It is not recommended to enable toString() on embedded targets as code size will explode.

View File

@ -187,6 +187,7 @@ struct UAVCAN_EXPORT DefaultDataTypeRegistrator
{
DefaultDataTypeRegistrator()
{
#if !UAVCAN_NO_GLOBAL_DATA_TYPE_REGISTRY
const GlobalDataTypeRegistry::RegistrationResult res =
GlobalDataTypeRegistry::instance().registerDataType<Type>(Type::DefaultDataTypeID);
@ -194,6 +195,7 @@ struct UAVCAN_EXPORT DefaultDataTypeRegistrator
{
handleFatalError("Type reg failed");
}
#endif
}
};