Provide a way to disable static registration using MEDIAPIPE_DISABLE_STATIC_REGISTRATION
PiperOrigin-RevId: 556963956
This commit is contained in:
parent
6605fdb16f
commit
dd940707ca
|
@ -408,22 +408,38 @@ class GlobalFactoryRegistry {
|
||||||
#define REGISTRY_STATIC_VAR(var_name, line) \
|
#define REGISTRY_STATIC_VAR(var_name, line) \
|
||||||
REGISTRY_STATIC_VAR_INNER(var_name, line)
|
REGISTRY_STATIC_VAR_INNER(var_name, line)
|
||||||
|
|
||||||
#define MEDIAPIPE_REGISTER_FACTORY_FUNCTION(RegistryType, name, ...) \
|
// Disables all static registration in MediaPipe accomplished using:
|
||||||
static auto* REGISTRY_STATIC_VAR(registration_##name, __LINE__) = \
|
// - REGISTER_FACTORY_FUNCTION_QUALIFIED
|
||||||
new mediapipe::RegistrationToken( \
|
// - MEDIAPIPE_REGISTER_FACTORY_FUNCTION
|
||||||
RegistryType::Register(#name, __VA_ARGS__))
|
// - MEDIAPIPE_STATIC_REGISTRATOR_TEMPLATE
|
||||||
|
//
|
||||||
|
// Which includes:
|
||||||
|
// - calculators
|
||||||
|
// - input stream handlers
|
||||||
|
// - output stream handlers
|
||||||
|
// - generators
|
||||||
|
// - anything else registered using above macros
|
||||||
|
#if !defined(MEDIAPIPE_DISABLE_STATIC_REGISTRATION)
|
||||||
|
#define MEDIAPIPE_DISABLE_STATIC_REGISTRATION 0
|
||||||
|
#endif // !defined(MEDIAPIPE_DISABLE_STATIC_REGISTRATION)
|
||||||
|
|
||||||
|
#if MEDIAPIPE_DISABLE_STATIC_REGISTRATION
|
||||||
|
|
||||||
|
#define MEDIAPIPE_REGISTER_FACTORY_FUNCTION_QUALIFIED(RegistryType, var_name, \
|
||||||
|
name, ...)
|
||||||
|
#define MEDIAPIPE_STATIC_REGISTRATOR_TEMPLATE(RegistratorName, RegistryType, \
|
||||||
|
name, ...) \
|
||||||
|
template <typename T> \
|
||||||
|
class RegistratorName {};
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
#define MEDIAPIPE_REGISTER_FACTORY_FUNCTION_QUALIFIED(RegistryType, var_name, \
|
#define MEDIAPIPE_REGISTER_FACTORY_FUNCTION_QUALIFIED(RegistryType, var_name, \
|
||||||
name, ...) \
|
name, ...) \
|
||||||
static auto* REGISTRY_STATIC_VAR(var_name, __LINE__) = \
|
static mediapipe::RegistrationToken* REGISTRY_STATIC_VAR(var_name, \
|
||||||
|
__LINE__) = \
|
||||||
new mediapipe::RegistrationToken( \
|
new mediapipe::RegistrationToken( \
|
||||||
RegistryType::Register(name, __VA_ARGS__))
|
RegistryType::Register(name, __VA_ARGS__));
|
||||||
|
|
||||||
// TODO: migrate to the above.
|
|
||||||
#define REGISTER_FACTORY_FUNCTION_QUALIFIED(RegistryType, var_name, name, ...) \
|
|
||||||
static auto* REGISTRY_STATIC_VAR(var_name, __LINE__) = \
|
|
||||||
new mediapipe::RegistrationToken( \
|
|
||||||
RegistryType::Register(#name, __VA_ARGS__))
|
|
||||||
|
|
||||||
// Defines a utility registrator class which can be used to automatically
|
// Defines a utility registrator class which can be used to automatically
|
||||||
// register factory functions.
|
// register factory functions.
|
||||||
|
@ -480,6 +496,18 @@ class GlobalFactoryRegistry {
|
||||||
typename Internal##RegistratorName<T>::RequireStatics register_; \
|
typename Internal##RegistratorName<T>::RequireStatics register_; \
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif // MEDIAPIPE_DISABLE_STATIC_REGISTRATION
|
||||||
|
|
||||||
|
#define MEDIAPIPE_REGISTER_FACTORY_FUNCTION(RegistryType, name, ...) \
|
||||||
|
MEDIAPIPE_REGISTER_FACTORY_FUNCTION_QUALIFIED( \
|
||||||
|
RegistryType, registration_##name, #name, __VA_ARGS__)
|
||||||
|
|
||||||
|
// TODO: migrate usages to use
|
||||||
|
// MEDIAPIPE_REGISTER_FACTORY_FUNCTION_QUALIFIED.
|
||||||
|
#define REGISTER_FACTORY_FUNCTION_QUALIFIED(RegistryType, var_name, name, ...) \
|
||||||
|
MEDIAPIPE_REGISTER_FACTORY_FUNCTION_QUALIFIED(RegistryType, var_name, #name, \
|
||||||
|
__VA_ARGS__)
|
||||||
|
|
||||||
} // namespace mediapipe
|
} // namespace mediapipe
|
||||||
|
|
||||||
#endif // MEDIAPIPE_DEPS_REGISTRATION_H_
|
#endif // MEDIAPIPE_DEPS_REGISTRATION_H_
|
||||||
|
|
Loading…
Reference in New Issue
Block a user