summaryrefslogtreecommitdiffstats
path: root/include/cppuhelper/weak.hxx
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@collabora.com>2014-01-21 15:45:43 +0100
committerJan Holesovsky <kendy@collabora.com>2014-01-21 21:25:22 +0100
commitf278397787f7b79cee8536e806e8b7113800f2ef (patch)
tree1760bce432d466cf9f3ca444c89ec8f44306ab04 /include/cppuhelper/weak.hxx
parentucb: fix inverted condition in webdav lcl_sendPartialGETRequest (diff)
downloadcore-f278397787f7b79cee8536e806e8b7113800f2ef.tar.gz
core-f278397787f7b79cee8536e806e8b7113800f2ef.zip
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/weak.hxx')
-rw-r--r--include/cppuhelper/weak.hxx17
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: */