22 #ifndef USMODULEACTIVATOR_H_
23 #define USMODULEACTIVATOR_H_
25 #ifndef US_MODULE_NAME
26 #error Missing US_MODULE_NAME preprocessor define
30 #include <usModuleUtils_p.h>
119 #define US_EXPORT_MODULE_ACTIVATOR(_activator_type) \
120 extern "C" US_ABI_EXPORT US_PREPEND_NAMESPACE(ModuleActivator)* US_CONCAT(_us_module_activator_instance_, US_MODULE_NAME) () \
122 struct ScopedPointer \
124 ScopedPointer(US_PREPEND_NAMESPACE(ModuleActivator)* activator = 0) : m_Activator(activator) {} \
125 ~ScopedPointer() { delete m_Activator; } \
126 US_PREPEND_NAMESPACE(ModuleActivator)* m_Activator; \
129 static ScopedPointer activatorPtr; \
130 if (activatorPtr.m_Activator == 0) activatorPtr.m_Activator = new _activator_type; \
131 return activatorPtr.m_Activator; \
virtual void Unload(ModuleContext *context)=0
virtual void Load(ModuleContext *context)=0
virtual ~ModuleActivator()
#define US_BEGIN_NAMESPACE