diff options
author | Jan Holesovsky <kendy@collabora.com> | 2014-01-21 15:45:43 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2014-01-21 21:25:22 +0100 |
commit | f278397787f7b79cee8536e806e8b7113800f2ef (patch) | |
tree | 1760bce432d466cf9f3ca444c89ec8f44306ab04 /include/cppuhelper | |
parent | 3780738154b8c3b3f9d85c64cccf621d97574886 (diff) |
Change _get_implementation()'s not to do initialization directly.
Many of the initalizations (in eg. framework) have to be done on an
acquire()'d object, so instead of doing the initialization directly, return
the initialization member function back to the createInstance() /
createInstanceWithContext() / ... and perform the initialization there.
As a sideeffect, I belive the calling initialize() from servicemanager is not
that much a hack any more - whoever converts the implementation to be
constructor-base has the choice to provide the callback, or still initialize
through XInitialization, where the callback is preferred by servicemanager
when it exists.
Change-Id: I8a87b75c54c1441ca0f184967d31ff4902fc4081
Diffstat (limited to 'include/cppuhelper')
-rw-r--r-- | include/cppuhelper/weak.hxx | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/include/cppuhelper/weak.hxx b/include/cppuhelper/weak.hxx index e74fac929fc8..0fefafc81ba9 100644 --- a/include/cppuhelper/weak.hxx +++ b/include/cppuhelper/weak.hxx @@ -156,9 +156,24 @@ public: { return this; } }; +/** Function pointer declaration. + + 2nd stage initialization using the service implementation pointer. + + Some services have to be initialized after the object has been acquire()'d - so the + implementation has to provide function that does this 2nd stage initialization. + + Typically, this happens in framework/. + + @param aArguments + Arguments the instance will use for its own initialization. +*/ + +typedef void (SAL_CALL OWeakObject::* constructor_InitializationFunc)( + const css::uno::Sequence< css::uno::Any >& aArguments); + } #endif - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |