Kaydet (Commit) 1b465fcc authored tarafından Matúš Kukan's avatar Matúš Kukan

Do not use macros from comphelper's componentmodule.hxx

üst d65e8cc1
......@@ -36,7 +36,24 @@ namespace basic
{
//........................................................................
IMPLEMENT_COMPONENT_MODULE( BasicModule );
struct BasicModuleCreator
{
BasicModule m_aBasicModule;
};
namespace
{
class theBasicModuleInstance : public rtl::Static<BasicModuleCreator, theBasicModuleInstance> {};
}
BasicModule::BasicModule()
:BaseClass()
{
}
BasicModule& BasicModule::getInstance()
{
return theBasicModuleInstance::get().m_aBasicModule;
}
//........................................................................
} // namespace basic
......
......@@ -36,7 +36,55 @@ namespace basic
{
//........................................................................
DECLARE_COMPONENT_MODULE( BasicModule, BasicModuleClient )
class BasicModule : public ::comphelper::OModule
{
friend struct BasicModuleCreator;
typedef ::comphelper::OModule BaseClass;
public:
static BasicModule& getInstance();
private:
BasicModule();
};
/* -------------------------------------------------------------------- */
class BasicModuleClient : public ::comphelper::OModuleClient
{
private:
typedef ::comphelper::OModuleClient BaseClass;
public:
BasicModuleClient() : BaseClass( BasicModule::getInstance() )
{
}
};
/* -------------------------------------------------------------------- */
template < class TYPE >
class OAutoRegistration : public ::comphelper::OAutoRegistration< TYPE >
{
private:
typedef ::comphelper::OAutoRegistration< TYPE > BaseClass;
public:
OAutoRegistration() : BaseClass( BasicModule::getInstance() )
{
}
};
/* -------------------------------------------------------------------- */
template < class TYPE >
class OSingletonRegistration : public ::comphelper::OSingletonRegistration< TYPE >
{
private:
typedef ::comphelper::OSingletonRegistration< TYPE > BaseClass;
public:
OSingletonRegistration() : BaseClass( BasicModule::getInstance() )
{
}
};
//........................................................................
} // namespace basic
......
......@@ -60,6 +60,11 @@ namespace basic
} // namespace basic
//........................................................................
IMPLEMENT_COMPONENT_LIBRARY_API( ::basic::BasicModule, ::basic::initializeModule )
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName, void* pServiceManager, void* pRegistryKey )
{
::basic::initializeModule();
return ::basic::BasicModule::getInstance().getComponentFactory( pImplementationName, pServiceManager, pRegistryKey );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment