diff options
author | Matúš Kukan <matus.kukan@gmail.com> | 2011-07-21 13:29:42 +0200 |
---|---|---|
committer | Matúš Kukan <matus.kukan@gmail.com> | 2011-07-21 13:30:54 +0200 |
commit | 1b465fcc0f5f699308c6ee5113dde6b82842c3dd (patch) | |
tree | ed00cf77b4d8d59a7a7bace70c689684c51641e6 /basic | |
parent | d65e8cc152d30916f3ccc153a1a1f7498858a1a0 (diff) |
Do not use macros from comphelper's componentmodule.hxx
Diffstat (limited to 'basic')
-rw-r--r-- | basic/source/uno/sbmodule.cxx | 19 | ||||
-rw-r--r-- | basic/source/uno/sbmodule.hxx | 50 | ||||
-rw-r--r-- | basic/source/uno/sbservices.cxx | 7 |
3 files changed, 73 insertions, 3 deletions
diff --git a/basic/source/uno/sbmodule.cxx b/basic/source/uno/sbmodule.cxx index 3c8d115b1912..909c9d5d7e37 100644 --- a/basic/source/uno/sbmodule.cxx +++ b/basic/source/uno/sbmodule.cxx @@ -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 diff --git a/basic/source/uno/sbmodule.hxx b/basic/source/uno/sbmodule.hxx index 2dd0b3dd7910..1da1ca5a6c2e 100644 --- a/basic/source/uno/sbmodule.hxx +++ b/basic/source/uno/sbmodule.hxx @@ -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 diff --git a/basic/source/uno/sbservices.cxx b/basic/source/uno/sbservices.cxx index 5c4e1fc98309..f4453d424bfa 100644 --- a/basic/source/uno/sbservices.cxx +++ b/basic/source/uno/sbservices.cxx @@ -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: */ |