summaryrefslogtreecommitdiff
path: root/cppuhelper
diff options
context:
space:
mode:
authorFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-03-23 12:51:25 +0100
committerFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-03-23 12:51:25 +0100
commit5566f41bb266f42b308a780e0c08f45c4e454b21 (patch)
tree4d2647f675c6fd0fdc0fdb54eec4c831f1d7ed47 /cppuhelper
parente9875dc4fc8a453df53a33ed022ef437939a1698 (diff)
slidecopy: +createOneInstanceComponentFactory
Diffstat (limited to 'cppuhelper')
-rw-r--r--cppuhelper/inc/cppuhelper/factory.hxx17
-rwxr-xr-xcppuhelper/source/cc5_solaris_sparc.map1
-rw-r--r--cppuhelper/source/factory.cxx11
-rw-r--r--cppuhelper/source/gcc3.map1
-rw-r--r--cppuhelper/source/gcc3os2.map1
-rw-r--r--cppuhelper/source/msvc_win32_intel.map1
6 files changed, 32 insertions, 0 deletions
diff --git a/cppuhelper/inc/cppuhelper/factory.hxx b/cppuhelper/inc/cppuhelper/factory.hxx
index bb79cf7dd82d..2e48d4f77301 100644
--- a/cppuhelper/inc/cppuhelper/factory.hxx
+++ b/cppuhelper/inc/cppuhelper/factory.hxx
@@ -152,6 +152,23 @@ SAL_CALL createSingleComponentFactory(
rtl_ModuleCount * pModCount = 0 )
SAL_THROW( () );
+/** Creates a single service factory which holds the instance created only once.
+
+ @param fptr function pointer for instanciating the object
+ @param rImplementationName implementation name of service
+ @param rServiceNames supported services
+ @param pModCount for future extension (library unloading concept).
+
+ @see createSingleComponentFactory
+*/
+::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory > SAL_CALL
+createOneInstanceComponentFactory(
+ ComponentFactoryFunc fptr,
+ ::rtl::OUString const & rImplementationName,
+ ::com::sun::star::uno::Sequence< ::rtl::OUString > const & rServiceNames,
+ rtl_ModuleCount * pModCount = 0 )
+ SAL_THROW( () );
+
/** Deprecated. The type of the instanciate function used as argument of the create*Fcatory functions.
@see createSingleFactory
diff --git a/cppuhelper/source/cc5_solaris_sparc.map b/cppuhelper/source/cc5_solaris_sparc.map
index 941465519a08..4b781f928aee 100755
--- a/cppuhelper/source/cc5_solaris_sparc.map
+++ b/cppuhelper/source/cc5_solaris_sparc.map
@@ -385,4 +385,5 @@ UDK_3.7 { # OOo 3.3
__1cEcppuLOWeakObjectbAdisposeWeakConnectionPoint6M_v_;
__1cDcomDsunEstarDunoTWeakReferenceHelper2G6Mrkn0DJReference4n0DKXInterface____r4_;
__1cDcomDsunEstarDunoTWeakReferenceHelperFclear6M_v_;
+ __1cEcppubCcreateOneInstanceComponentFactory6FpFrknDcomDsunEstarDunoJReference4n0ERXComponentContext____n0EJReference4n0EKXInterface___rknDrtlIOUString_rkn0EISequence4n0K___pnQ_rtl_ModuleCount__n0EJReference4n0DElangXXSingleComponentFactory____;
} UDK_3.6;
diff --git a/cppuhelper/source/factory.cxx b/cppuhelper/source/factory.cxx
index bfa0eef0ca25..e6020d7fac4b 100644
--- a/cppuhelper/source/factory.cxx
+++ b/cppuhelper/source/factory.cxx
@@ -1127,6 +1127,17 @@ Reference< lang::XSingleComponentFactory > SAL_CALL createSingleComponentFactory
Reference< XMultiServiceFactory >(), rImplementationName, 0, fptr, &rServiceNames, pModCount, sal_False );
}
+Reference< lang::XSingleComponentFactory > SAL_CALL createOneInstanceComponentFactory(
+ ComponentFactoryFunc fptr,
+ OUString const & rImplementationName,
+ Sequence< OUString > const & rServiceNames,
+ rtl_ModuleCount * pModCount)
+ SAL_THROW( () )
+{
+ return new OFactoryComponentHelper(
+ Reference< XMultiServiceFactory >(), rImplementationName, 0, fptr, &rServiceNames, pModCount, sal_True );
+}
+
}
diff --git a/cppuhelper/source/gcc3.map b/cppuhelper/source/gcc3.map
index 099373b2e220..852a77d70480 100644
--- a/cppuhelper/source/gcc3.map
+++ b/cppuhelper/source/gcc3.map
@@ -379,5 +379,6 @@ UDK_3.6 { # OOo 3.3
_ZN4cppu11OWeakObject26disposeWeakConnectionPointEv;
_ZN3com3sun4star3uno19WeakReferenceHelperaSERKNS2_9ReferenceINS2_10XInterfaceEEE;
_ZN3com3sun4star3uno19WeakReferenceHelper5clearEv;
+ _ZN4cppu28createOneInstanceComponentFactoryEPFN3com3sun4star3uno9ReferenceINS3_10XInterfaceEEERKNS4_INS3_17XComponentContextEEEERKN3rtl8OUStringERKNS3_8SequenceISE_EEP16_rtl_ModuleCount;
} UDK_3.5;
diff --git a/cppuhelper/source/gcc3os2.map b/cppuhelper/source/gcc3os2.map
index 6aada0273d59..681a076cee79 100644
--- a/cppuhelper/source/gcc3os2.map
+++ b/cppuhelper/source/gcc3os2.map
@@ -373,4 +373,5 @@ UDK_3.5 { # OOo 3.0
global:
_ZN4cppu18OPropertySetHelperC1ERNS_19OBroadcastHelperVarINS_34OMultiTypeInterfaceContainerHelperEN3com3sun4star3uno4TypeEEEPNS_22IEventNotificationHookEb;
_ZN4cppu18OPropertySetHelperC2ERNS_19OBroadcastHelperVarINS_34OMultiTypeInterfaceContainerHelperEN3com3sun4star3uno4TypeEEEPNS_22IEventNotificationHookEb;
+ _ZN4cppu28createOneInstanceComponentFactoryEPFN3com3sun4star3uno9ReferenceINS3_10XInterfaceEEERKNS4_INS3_17XComponentContextEEEERKN3rtl8OUStringERKNS3_8SequenceISE_EEP16_rtl_ModuleCount;
} UDK_3.4;
diff --git a/cppuhelper/source/msvc_win32_intel.map b/cppuhelper/source/msvc_win32_intel.map
index 6bc10cb175c2..6d5a491ab925 100644
--- a/cppuhelper/source/msvc_win32_intel.map
+++ b/cppuhelper/source/msvc_win32_intel.map
@@ -276,4 +276,5 @@ UDK_3.6 { # OOo 3.3
global:
?disposeWeakConnectionPoint@OWeakObject@cppu@@IAEXXZ;
?clear@WeakReferenceHelper@uno@star@sun@com@@QAAXXZ;
+ ?createOneInstanceComponentFactory@cppu@@YA?AV?$Reference@VXSingleComponentFactory@lang@star@sun@com@@@uno@star@sun@com@@P6A?AV?$Reference@VXInterface@uno@star@sun@com@@@3456@ABV?$Reference@VXComponentContext@uno@star@sun@com@@@3456@@ZABVOUString@rtl@@ABV?$Sequence@VOUString@rtl@@@3456@PAU_rtl_ModuleCount@@@Z;
} UDK_3.5;