summaryrefslogtreecommitdiff
path: root/basic
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@gmail.com>2011-07-21 13:29:42 +0200
committerMatúš Kukan <matus.kukan@gmail.com>2011-07-21 13:30:54 +0200
commit1b465fcc0f5f699308c6ee5113dde6b82842c3dd (patch)
treeed00cf77b4d8d59a7a7bace70c689684c51641e6 /basic
parentd65e8cc152d30916f3ccc153a1a1f7498858a1a0 (diff)
Do not use macros from comphelper's componentmodule.hxx
Diffstat (limited to 'basic')
-rw-r--r--basic/source/uno/sbmodule.cxx19
-rw-r--r--basic/source/uno/sbmodule.hxx50
-rw-r--r--basic/source/uno/sbservices.cxx7
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: */