This is an automated email from the ASF dual-hosted git repository.
mseidel pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
The following commit(s) were added to refs/heads/AOO42X by this push:
new d07f3ff7b9 Port main/sax component_getFactory() to the component
context API.
d07f3ff7b9 is described below
commit d07f3ff7b902bf2bae696472eeb55731a19aee86
Author: Damjan Jovanovic <[email protected]>
AuthorDate: Fri Jun 6 05:45:43 2025 +0200
Port main/sax component_getFactory() to the component context API.
Patch by: me
(cherry picked from commit 85ec52e3ec50dfd34a97af98ddb418c203742409)
---
main/sax/source/expatwrap/factory.hxx | 2 +-
main/sax/source/expatwrap/sax_expat.cxx | 77 ++++++++++++++-----------------
main/sax/source/expatwrap/saxwriter.cxx | 2 +-
main/sax/source/fastparser/facreg.cxx | 60 +++++++++++-------------
main/sax/source/fastparser/fastparser.cxx | 7 ++-
main/sax/source/fastparser/fastparser.hxx | 1 +
main/sax/source/tools/fastserializer.cxx | 2 +-
7 files changed, 71 insertions(+), 80 deletions(-)
diff --git a/main/sax/source/expatwrap/factory.hxx
b/main/sax/source/expatwrap/factory.hxx
index f92c994d8e..98a2765727 100644
--- a/main/sax/source/expatwrap/factory.hxx
+++ b/main/sax/source/expatwrap/factory.hxx
@@ -22,7 +22,7 @@
namespace sax_expatwrap {
Reference< XInterface > SAL_CALL SaxWriter_CreateInstance(
- const Reference< XMultiServiceFactory > & rSMgr ) throw (Exception);
+ const Reference< XComponentContext > & rCtx ) throw (Exception);
OUString SaxWriter_getServiceName() throw();
OUString SaxWriter_getImplementationName() throw();
Sequence< OUString > SaxWriter_getSupportedServiceNames(void) throw();
diff --git a/main/sax/source/expatwrap/sax_expat.cxx
b/main/sax/source/expatwrap/sax_expat.cxx
index d37fecdc23..88beb4e28a 100644
--- a/main/sax/source/expatwrap/sax_expat.cxx
+++ b/main/sax/source/expatwrap/sax_expat.cxx
@@ -38,6 +38,7 @@
#include <cppuhelper/weak.hxx>
#include <cppuhelper/implbase1.hxx>
#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implementationentry.hxx>
#include <expat.h>
@@ -133,8 +134,6 @@ OUString XmlChar2OUString( const XML_Char *p )
}\
((void)0)
-#define IMPLEMENTATION_NAME
"com.sun.star.comp.extensions.xml.sax.ParserExpat"
-#define SERVICE_NAME "com.sun.star.xml.sax.Parser"
class SaxExpatParser_Impl;
@@ -154,6 +153,7 @@ public:
public:
// The implementation details
+ static OUString
getImplementationName_Static(void) throw();
static Sequence< OUString > getSupportedServiceNames_Static(void)
throw ();
public:
@@ -189,19 +189,22 @@ private:
// the extern interface
//---------------------------------------
Reference< XInterface > SAL_CALL SaxExpatParser_CreateInstance(
- const Reference< XMultiServiceFactory > & ) throw(Exception)
+ Reference< XComponentContext > const & ) throw(Exception)
{
SaxExpatParser *p = new SaxExpatParser;
return Reference< XInterface > ( (OWeakObject * ) p );
}
-
+OUString SaxExpatParser::getImplementationName_Static() throw ()
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.comp.extensions.xml.sax.ParserExpat" ) );
+}
Sequence< OUString > SaxExpatParser::getSupportedServiceNames_Static(void)
throw ()
{
Sequence<OUString> aRet(1);
- aRet.getArray()[0] = ::rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(SERVICE_NAME) );
+ aRet.getArray()[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.xml.sax.Parser" ) );
return aRet;
}
@@ -591,7 +594,7 @@ void SaxExpatParser::setLocale( const Locale & locale )
throw (RuntimeException)
// XServiceInfo
OUString SaxExpatParser::getImplementationName() throw ()
{
- return OUString::createFromAscii( IMPLEMENTATION_NAME );
+ return getImplementationName_Static();
}
// XServiceInfo
@@ -610,10 +613,7 @@ sal_Bool SaxExpatParser::supportsService(const OUString&
ServiceName) throw ()
// XServiceInfo
Sequence< OUString > SaxExpatParser::getSupportedServiceNames(void) throw ()
{
-
- Sequence<OUString> seq(1);
- seq.getArray()[0] = OUString::createFromAscii( SERVICE_NAME );
- return seq;
+ return getSupportedServiceNames_Static();
}
@@ -1021,6 +1021,28 @@ void SaxExpatParser_Impl::callbackEndCDATA( void *pvThis
)
}
using namespace sax_expatwrap;
+
+static struct ::cppu::ImplementationEntry g_component_entries[] =
+{
+ {
+ SaxExpatParser_CreateInstance,
+ SaxExpatParser::getImplementationName_Static,
+ SaxExpatParser::getSupportedServiceNames_Static,
+ ::cppu::createSingleComponentFactory,
+ 0,
+ 0
+ },
+ {
+ SaxWriter_CreateInstance,
+ SaxWriter_getImplementationName,
+ SaxWriter_getSupportedServiceNames,
+ ::cppu::createSingleComponentFactory,
+ 0,
+ 0
+ },
+ { 0, 0, 0, 0, 0, 0 }
+};
+
extern "C"
{
@@ -1031,40 +1053,9 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL
component_getImplementationEnvironment(
}
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, void * pServiceManager, void *
/*pRegistryKey*/ )
+ const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey
)
{
- void * pRet = 0;
-
- if (pServiceManager )
- {
- Reference< XSingleServiceFactory > xRet;
- Reference< XMultiServiceFactory > xSMgr =
- reinterpret_cast< XMultiServiceFactory * > (
pServiceManager );
-
- OUString aImplementationName = OUString::createFromAscii(
pImplName );
-
- if (aImplementationName ==
- OUString( RTL_CONSTASCII_USTRINGPARAM(
IMPLEMENTATION_NAME ) ) )
- {
- xRet = createSingleFactory( xSMgr, aImplementationName,
-
SaxExpatParser_CreateInstance,
-
SaxExpatParser::getSupportedServiceNames_Static() );
- }
- else if ( aImplementationName ==
SaxWriter_getImplementationName() )
- {
- xRet = createSingleFactory( xSMgr, aImplementationName,
-
SaxWriter_CreateInstance,
-
SaxWriter_getSupportedServiceNames() );
- }
-
- if (xRet.is())
- {
- xRet->acquire();
- pRet = xRet.get();
- }
- }
-
- return pRet;
+ return ::cppu::component_getFactoryHelper( pImplName, pServiceManager,
pRegistryKey, g_component_entries );
}
diff --git a/main/sax/source/expatwrap/saxwriter.cxx
b/main/sax/source/expatwrap/saxwriter.cxx
index a7a87cf630..5b472483c6 100644
--- a/main/sax/source/expatwrap/saxwriter.cxx
+++ b/main/sax/source/expatwrap/saxwriter.cxx
@@ -1016,7 +1016,7 @@ private:
// the extern interface
//---------------------------------------
Reference < XInterface > SAL_CALL SaxWriter_CreateInstance(
- const Reference < XMultiServiceFactory > & )
+ const Reference < XComponentContext > & )
throw (Exception)
{
SAXWriter *p = new SAXWriter;
diff --git a/main/sax/source/fastparser/facreg.cxx
b/main/sax/source/fastparser/facreg.cxx
index 31a1cbfdc4..0fdf329bc8 100644
--- a/main/sax/source/fastparser/facreg.cxx
+++ b/main/sax/source/fastparser/facreg.cxx
@@ -22,6 +22,7 @@
#include <cppuhelper/factory.hxx>
#include <cppuhelper/weak.hxx>
#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implementationentry.hxx>
#include "../tools/fastserializer.hxx"
#include "fastparser.hxx"
@@ -39,17 +40,39 @@ namespace sax_fastparser
//--------------------------------------
// the extern interface
//---------------------------------------
-Reference< XInterface > SAL_CALL FastSaxParser_CreateInstance( const
Reference< XMultiServiceFactory > & ) throw(Exception)
+Reference< XInterface > SAL_CALL FastSaxParser_CreateInstance( const
Reference< XComponentContext > & ) throw(Exception)
{
FastSaxParser *p = new FastSaxParser;
return Reference< XInterface > ( (OWeakObject * ) p );
}
-Reference< XInterface > SAL_CALL FastSaxSerializer_CreateInstance( const
Reference< XMultiServiceFactory > & ) throw(Exception)
+Reference< XInterface > SAL_CALL FastSaxSerializer_CreateInstance( const
Reference< XComponentContext > & ) throw(Exception)
{
FastSaxSerializer *p = new FastSaxSerializer;
return Reference< XInterface > ( (OWeakObject * ) p );
}
+
+struct ::cppu::ImplementationEntry g_component_entries[] =
+{
+ {
+ FastSaxParser_CreateInstance,
+ FastSaxParser::getImplementationName_Static,
+ FastSaxParser::getSupportedServiceNames_Static,
+ ::cppu::createSingleComponentFactory,
+ 0,
+ 0
+ },
+ {
+ FastSaxSerializer_CreateInstance,
+ FastSaxSerializer::getImplementationName_Static,
+ FastSaxSerializer::getSupportedServiceNames_Static,
+ ::cppu::createSingleComponentFactory,
+ 0,
+ 0
+ },
+ { 0, 0, 0, 0, 0, 0 }
+};
+
}
extern "C"
@@ -61,38 +84,9 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL
component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char *
pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
+SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char *
pImplName, void * pServiceManager, void * pRegistryKey )
{
- void * pRet = 0;
-
- if (pServiceManager )
- {
- Reference< XSingleServiceFactory > xRet;
- Reference< XMultiServiceFactory > xSMgr( reinterpret_cast<
XMultiServiceFactory * > ( pServiceManager ) );
-
- OUString aImplementationName( OUString::createFromAscii(
pImplName ) );
-
- if (aImplementationName == OUString(
RTL_CONSTASCII_USTRINGPARAM( PARSER_IMPLEMENTATION_NAME ) ) )
- {
- xRet = createSingleFactory( xSMgr, aImplementationName,
-
FastSaxParser_CreateInstance,
-
FastSaxParser::getSupportedServiceNames_Static() );
- }
- else if (aImplementationName == OUString(
RTL_CONSTASCII_USTRINGPARAM( SERIALIZER_IMPLEMENTATION_NAME ) ) )
- {
- xRet = createSingleFactory( xSMgr, aImplementationName,
-
FastSaxSerializer_CreateInstance,
-
FastSaxSerializer::getSupportedServiceNames_Static() );
- }
-
- if (xRet.is())
- {
- xRet->acquire();
- pRet = xRet.get();
- }
- }
-
- return pRet;
+ return ::cppu::component_getFactoryHelper( pImplName, pServiceManager,
pRegistryKey, g_component_entries );
}
diff --git a/main/sax/source/fastparser/fastparser.cxx
b/main/sax/source/fastparser/fastparser.cxx
index c775ef4983..c566f5178a 100644
--- a/main/sax/source/fastparser/fastparser.cxx
+++ b/main/sax/source/fastparser/fastparser.cxx
@@ -539,6 +539,11 @@ void FastSaxParser::setLocale( const Locale & Locale )
throw (RuntimeException)
maData.maLocale = Locale;
}
+OUString FastSaxParser::getImplementationName_Static(void)
+{
+ return OUString::createFromAscii( PARSER_IMPLEMENTATION_NAME );
+}
+
Sequence< OUString > FastSaxParser::getSupportedServiceNames_Static(void)
{
Sequence<OUString> aRet(1);
@@ -549,7 +554,7 @@ Sequence< OUString >
FastSaxParser::getSupportedServiceNames_Static(void)
// XServiceInfo
OUString FastSaxParser::getImplementationName() throw (RuntimeException)
{
- return OUString::createFromAscii( PARSER_IMPLEMENTATION_NAME );
+ return getImplementationName_Static();
}
// XServiceInfo
diff --git a/main/sax/source/fastparser/fastparser.hxx
b/main/sax/source/fastparser/fastparser.hxx
index 909126e184..3876867491 100644
--- a/main/sax/source/fastparser/fastparser.hxx
+++ b/main/sax/source/fastparser/fastparser.hxx
@@ -100,6 +100,7 @@ public:
virtual ~FastSaxParser();
// The implementation details
+ static ::rtl::OUString getImplementationName_Static(void);
static ::com::sun::star::uno::Sequence< ::rtl::OUString >
getSupportedServiceNames_Static(void);
// XFastParser
diff --git a/main/sax/source/tools/fastserializer.cxx
b/main/sax/source/tools/fastserializer.cxx
index a0d58e0e28..5d0a52c62e 100644
--- a/main/sax/source/tools/fastserializer.cxx
+++ b/main/sax/source/tools/fastserializer.cxx
@@ -278,7 +278,7 @@ namespace sax_fastparser {
// XServiceInfo
OUString FastSaxSerializer::getImplementationName() throw
(RuntimeException)
{
- return OUString::createFromAscii(
SERIALIZER_IMPLEMENTATION_NAME );
+ return getImplementationName_Static();
}
// XServiceInfo