diff options
Diffstat (limited to 'stoc')
-rw-r--r-- | stoc/prj/build.lst | 2 | ||||
-rw-r--r-- | stoc/source/bootstrap/services.cxx | 6 | ||||
-rw-r--r-- | stoc/source/corereflection/crefl.cxx | 6 | ||||
-rw-r--r-- | stoc/source/inspect/introspection.cxx | 7 | ||||
-rw-r--r-- | stoc/source/invocation/invocation.cxx | 6 | ||||
-rw-r--r-- | stoc/source/invocation_adapterfactory/iafactory.cxx | 7 | ||||
-rw-r--r-- | stoc/source/javaloader/javaloader.cxx | 9 | ||||
-rw-r--r-- | stoc/source/javavm/javavm.cxx | 6 | ||||
-rw-r--r-- | stoc/source/loader/dllcomponentloader.cxx | 20 | ||||
-rw-r--r-- | stoc/source/namingservice/namingservice.cxx | 6 | ||||
-rw-r--r-- | stoc/source/proxy_factory/proxyfac.cxx | 6 | ||||
-rw-r--r-- | stoc/source/simpleregistry/textualservices.cxx | 47 | ||||
-rw-r--r-- | stoc/source/stocservices/stocservices.cxx | 6 | ||||
-rw-r--r-- | stoc/test/excomp/excomp1.cxx | 6 | ||||
-rw-r--r-- | stoc/test/excomp/excomp2.cxx | 6 | ||||
-rw-r--r-- | stoc/test/excomp/exports.dxp | 1 | ||||
-rw-r--r-- | stoc/test/registry_tdprovider/testregistrytdprovider.cxx | 8 | ||||
-rw-r--r-- | stoc/test/tdmanager/testtdmanager.cxx | 8 | ||||
-rw-r--r-- | stoc/test/testsmgr_cpnt.cxx | 6 | ||||
-rw-r--r-- | stoc/test/testsmgr_cpnt.map | 1 |
20 files changed, 60 insertions, 110 deletions
diff --git a/stoc/prj/build.lst b/stoc/prj/build.lst index 256f09474..c7a1fe693 100644 --- a/stoc/prj/build.lst +++ b/stoc/prj/build.lst @@ -1,4 +1,4 @@ -tc stoc : rdbmaker cppuhelper cppu jvmaccess sal salhelper jvmfwk xmlreader LIBXSTL:libxslt NULL +tc stoc : DESKTOP:rdbmaker cppuhelper cppu jvmaccess sal salhelper jvmfwk xmlreader LIBXSTL:libxslt registry NULL tc stoc usr1 - all tc_mkout NULL tc stoc\inc nmake - all tc_inc NULL tc stoc\source\defaultregistry nmake - all tc_defr tc_boot tc_inc NULL diff --git a/stoc/source/bootstrap/services.cxx b/stoc/source/bootstrap/services.cxx index f529aa6bf..32f7a401b 100644 --- a/stoc/source/bootstrap/services.cxx +++ b/stoc/source/bootstrap/services.cxx @@ -126,12 +126,6 @@ sal_Bool SAL_CALL component_canUnload( TimeValue *pTime ) } //================================================================================================== -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - const sal_Char ** ppEnvTypeName, uno_Environment ** ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} -//================================================================================================== SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { diff --git a/stoc/source/corereflection/crefl.cxx b/stoc/source/corereflection/crefl.cxx index 29a471034..4d242471f 100644 --- a/stoc/source/corereflection/crefl.cxx +++ b/stoc/source/corereflection/crefl.cxx @@ -481,12 +481,6 @@ sal_Bool SAL_CALL component_canUnload( TimeValue *pTime ) } //================================================================================================== -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - const sal_Char ** ppEnvTypeName, uno_Environment ** ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} -//================================================================================================== SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { diff --git a/stoc/source/inspect/introspection.cxx b/stoc/source/inspect/introspection.cxx index c5ee6c41c..5ada829be 100644 --- a/stoc/source/inspect/introspection.cxx +++ b/stoc/source/inspect/introspection.cxx @@ -3044,13 +3044,6 @@ Reference< XInterface > SAL_CALL ImplIntrospection_CreateInstance( const Referen extern "C" { -//================================================================================================== -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - const sal_Char ** ppEnvTypeName, uno_Environment ** ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} -//================================================================================================== SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * ) { diff --git a/stoc/source/invocation/invocation.cxx b/stoc/source/invocation/invocation.cxx index ca9731b75..e5b05d09c 100644 --- a/stoc/source/invocation/invocation.cxx +++ b/stoc/source/invocation/invocation.cxx @@ -1222,12 +1222,6 @@ sal_Bool SAL_CALL component_canUnload( TimeValue *pTime ) } //================================================================================================== -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - const sal_Char ** ppEnvTypeName, uno_Environment ** ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} -//================================================================================================== SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { diff --git a/stoc/source/invocation_adapterfactory/iafactory.cxx b/stoc/source/invocation_adapterfactory/iafactory.cxx index c315709d1..f011c137a 100644 --- a/stoc/source/invocation_adapterfactory/iafactory.cxx +++ b/stoc/source/invocation_adapterfactory/iafactory.cxx @@ -991,13 +991,6 @@ sal_Bool SAL_CALL component_canUnload( } //============================================================================== -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - const sal_Char ** ppEnvTypeName, uno_Environment ** ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} - -//============================================================================== SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { diff --git a/stoc/source/javaloader/javaloader.cxx b/stoc/source/javaloader/javaloader.cxx index 22452aca1..b28b766d5 100644 --- a/stoc/source/javaloader/javaloader.cxx +++ b/stoc/source/javaloader/javaloader.cxx @@ -445,15 +445,6 @@ static struct ImplementationEntry g_entries[] = extern "C" { -// NOTE: component_canUnload is not exported, as the library cannot be unloaded. - -//================================================================================================== -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - const sal_Char ** ppEnvTypeName, uno_Environment ** ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} -//================================================================================================== SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { diff --git a/stoc/source/javavm/javavm.cxx b/stoc/source/javavm/javavm.cxx index abe67d934..93c21e174 100644 --- a/stoc/source/javavm/javavm.cxx +++ b/stoc/source/javavm/javavm.cxx @@ -609,12 +609,6 @@ private: } -extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(sal_Char const ** pEnvTypeName, - uno_Environment **) -{ - *pEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} - extern "C" SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(sal_Char const * pImplName, void * pServiceManager, void * pRegistryKey) diff --git a/stoc/source/loader/dllcomponentloader.cxx b/stoc/source/loader/dllcomponentloader.cxx index 78aca34d3..9c27a1f1b 100644 --- a/stoc/source/loader/dllcomponentloader.cxx +++ b/stoc/source/loader/dllcomponentloader.cxx @@ -202,8 +202,26 @@ Reference<XInterface> SAL_CALL DllComponentLoader::activate( throw(CannotActivateFactoryException, RuntimeException) { + rtl::OUString aPrefix; + if( xKey.is() ) + { + Reference<XRegistryKey > xActivatorKey = xKey->openKey( + rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/UNO/ACTIVATOR") ) ); + if (xActivatorKey.is() && xActivatorKey->getValueType() == RegistryValueType_ASCII ) + { + Reference<XRegistryKey > xPrefixKey = xActivatorKey->openKey( + rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/UNO/PREFIX") ) ); + if( xPrefixKey.is() && xPrefixKey->getValueType() == RegistryValueType_ASCII ) + { + aPrefix = xPrefixKey->getAsciiValue(); + if( aPrefix.getLength() != 0 ) + aPrefix = aPrefix + OUSTR("_"); + } + } + } + return loadSharedLibComponentFactory( - expand_url( rLibName ), OUString(), rImplName, m_xSMgr, xKey ); + expand_url( rLibName ), OUString(), rImplName, m_xSMgr, xKey, aPrefix ); } diff --git a/stoc/source/namingservice/namingservice.cxx b/stoc/source/namingservice/namingservice.cxx index 39e1528ed..c93269578 100644 --- a/stoc/source/namingservice/namingservice.cxx +++ b/stoc/source/namingservice/namingservice.cxx @@ -213,12 +213,6 @@ sal_Bool SAL_CALL component_canUnload( TimeValue *pTime ) } //================================================================================================== -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - const sal_Char ** ppEnvTypeName, uno_Environment ** ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} -//================================================================================================== SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { diff --git a/stoc/source/proxy_factory/proxyfac.cxx b/stoc/source/proxy_factory/proxyfac.cxx index cc2d4a488..84833f379 100644 --- a/stoc/source/proxy_factory/proxyfac.cxx +++ b/stoc/source/proxy_factory/proxyfac.cxx @@ -521,12 +521,6 @@ sal_Bool SAL_CALL component_canUnload( TimeValue * pTime ) return g_moduleCount.canUnload( &g_moduleCount, pTime ); } -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - const sal_Char ** ppEnvTypeName, uno_Environment ** ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} - SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { diff --git a/stoc/source/simpleregistry/textualservices.cxx b/stoc/source/simpleregistry/textualservices.cxx index 483c8ba5b..a5dd8f5fa 100644 --- a/stoc/source/simpleregistry/textualservices.cxx +++ b/stoc/source/simpleregistry/textualservices.cxx @@ -63,6 +63,7 @@ namespace css = com::sun::star; struct Implementation { rtl::OUString uri; rtl::OUString loader; + rtl::OUString prefix; std::vector< rtl::OUString > services; std::vector< rtl::OUString > singletons; }; @@ -103,6 +104,7 @@ private: rtl::Reference< Data > data_; rtl::OUString attrUri_; rtl::OUString attrLoader_; + rtl::OUString attrPrefix_; rtl::OUString attrImplementation_; }; @@ -238,6 +240,7 @@ Parser::Parser(rtl::OUString const & uri, rtl::Reference< Data > const & data): void Parser::handleComponent() { attrUri_ = rtl::OUString(); attrLoader_ = rtl::OUString(); + attrPrefix_ = rtl::OUString(); xmlreader::Span name; int nsId; while (reader_.nextAttribute(&nsId, &name)) { @@ -282,8 +285,29 @@ void Parser::handleComponent() { ": <component> has empty \"loader\" attribute"))), css::uno::Reference< css::uno::XInterface >()); } + } else if (nsId == xmlreader::XmlReader::NAMESPACE_NONE && + name.equals(RTL_CONSTASCII_STRINGPARAM("prefix"))) + { + if (attrPrefix_.getLength() != 0) { + throw css::registry::InvalidRegistryException( + (reader_.getUrl() + + rtl::OUString( + RTL_CONSTASCII_USTRINGPARAM( + ": <component> has multiple \"prefix\"" + " attributes"))), + css::uno::Reference< css::uno::XInterface >()); + } + attrPrefix_ = reader_.getAttributeValue(false).convertFromUtf8(); + if (attrPrefix_.getLength() == 0) { + throw css::registry::InvalidRegistryException( + (reader_.getUrl() + + rtl::OUString( + RTL_CONSTASCII_USTRINGPARAM( + ": <component> has empty \"prefix\" attribute"))), + css::uno::Reference< css::uno::XInterface >()); + } } else { - OSL_FAIL ("unexpected component attribute, expected 'uri' or 'loader'"); + OSL_FAIL ("unexpected component attribute, expected 'uri' or 'loader' or 'prefix'"); } } if (attrUri_.getLength() == 0) { @@ -330,6 +354,7 @@ void Parser::handleImplementation() { } data_->implementations[attrImplementation_].uri = attrUri_; data_->implementations[attrImplementation_].loader = attrLoader_; + data_->implementations[attrImplementation_].prefix = attrPrefix_; } void Parser::handleService() { @@ -419,6 +444,7 @@ private: UNO LOCATION utf-8 ACTIVATOR utf-8 + PREFIX utf-8 SERVICES <service> ... @@ -436,7 +462,7 @@ private: */ enum State { STATE_ROOT, STATE_IMPLEMENTATIONS, STATE_IMPLEMENTATION, STATE_UNO, - STATE_LOCATION, STATE_ACTIVATOR, STATE_IMPLEMENTATION_SERVICES, + STATE_LOCATION, STATE_ACTIVATOR, STATE_PREFIX, STATE_IMPLEMENTATION_SERVICES, STATE_IMPLEMENTATION_SERVICE, STATE_IMPLEMENTATION_SINGLETONS, STATE_IMPLEMENTATION_SINGLETON, STATE_SERVICES, STATE_SERVICE, STATE_SINGLETONS, STATE_SINGLETON, STATE_REGISTEREDBY }; @@ -668,6 +694,8 @@ rtl::OUString Key::getAsciiValue() throw ( return data_->implementations[path_[1]].uri; case STATE_ACTIVATOR: return data_->implementations[path_[1]].loader; + case STATE_PREFIX: + return data_->implementations[path_[1]].prefix; default: throw css::registry::InvalidValueException( rtl::OUString( @@ -948,7 +976,7 @@ bool Key::find( if (path != 0) { *path = p; } - std::size_t const MAX_TRANSITIONS = 4; + std::size_t const MAX_TRANSITIONS = 5; struct StateInfo { css::registry::RegistryValueType type; std::size_t count; @@ -968,15 +996,18 @@ bool Key::find( { css::registry::RegistryValueType_NOT_DEFINED, 1, { { "UNO", STATE_UNO } } }, // STATE_UNO: - { css::registry::RegistryValueType_NOT_DEFINED, 4, + { css::registry::RegistryValueType_NOT_DEFINED, 5, { { "LOCATION", STATE_LOCATION }, { "ACTIVATOR", STATE_ACTIVATOR }, + { "PREFIX", STATE_PREFIX }, { "SERVICES", STATE_IMPLEMENTATION_SERVICES }, { "SINGLETONS", STATE_IMPLEMENTATION_SINGLETONS } } }, // STATE_LOCATION: { css::registry::RegistryValueType_ASCII, 0, {} }, // STATE_ACTIVATOR: { css::registry::RegistryValueType_ASCII, 0, {} }, + // STATE_PREFIX: + { css::registry::RegistryValueType_ASCII, 0, {} }, // STATE_IMPLEMENTATION_SERVICES: { css::registry::RegistryValueType_NOT_DEFINED, 1, { { 0, STATE_IMPLEMENTATION_SERVICE } } }, @@ -1084,15 +1115,17 @@ css::uno::Sequence< rtl::OUString > Key::getChildren() { } case STATE_UNO: { - css::uno::Sequence< rtl::OUString > seq(4); + css::uno::Sequence< rtl::OUString > seq(5); seq[0] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LOCATION")); seq[1] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ACTIVATOR")); - seq[2] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SERVICES")); - seq[3] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SINGLETONS")); + seq[2] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PREFIX")); + seq[3] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SERVICES")); + seq[4] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SINGLETONS")); return seq; } case STATE_LOCATION: case STATE_ACTIVATOR: + case STATE_PREFIX: case STATE_IMPLEMENTATION_SERVICE: case STATE_IMPLEMENTATION_SINGLETON: case STATE_SERVICE: diff --git a/stoc/source/stocservices/stocservices.cxx b/stoc/source/stocservices/stocservices.cxx index bd7894036..0a9e96c71 100644 --- a/stoc/source/stocservices/stocservices.cxx +++ b/stoc/source/stocservices/stocservices.cxx @@ -96,12 +96,6 @@ sal_Bool SAL_CALL component_canUnload( TimeValue *pTime ) } //================================================================================================== -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - const sal_Char ** ppEnvTypeName, uno_Environment ** ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} -//================================================================================================== SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { diff --git a/stoc/test/excomp/excomp1.cxx b/stoc/test/excomp/excomp1.cxx index 03c22f136..84c075d41 100644 --- a/stoc/test/excomp/excomp1.cxx +++ b/stoc/test/excomp/excomp1.cxx @@ -155,12 +155,6 @@ Reference<XInterface> SAL_CALL ExampleComponent1_CreateInstance( const Reference extern "C" { //================================================================================================== -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */ ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} -//================================================================================================== sal_Bool SAL_CALL component_writeInfo( void * /* pServiceManager */ , void * pRegistryKey ) { diff --git a/stoc/test/excomp/excomp2.cxx b/stoc/test/excomp/excomp2.cxx index 43235ab67..f9e84eaa9 100644 --- a/stoc/test/excomp/excomp2.cxx +++ b/stoc/test/excomp/excomp2.cxx @@ -226,12 +226,6 @@ Reference<XInterface> SAL_CALL ExampleComponent2_CreateInstance( const Reference extern "C" { //================================================================================================== -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */ ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} -//================================================================================================== sal_Bool SAL_CALL component_writeInfo( void * /* pServiceManager */, void * pRegistryKey ) { diff --git a/stoc/test/excomp/exports.dxp b/stoc/test/excomp/exports.dxp index 9630d7e06..51703a046 100644 --- a/stoc/test/excomp/exports.dxp +++ b/stoc/test/excomp/exports.dxp @@ -1,3 +1,2 @@ -component_getImplementationEnvironment component_writeInfo component_getFactory diff --git a/stoc/test/registry_tdprovider/testregistrytdprovider.cxx b/stoc/test/registry_tdprovider/testregistrytdprovider.cxx index c833197d2..bf395f1e7 100644 --- a/stoc/test/registry_tdprovider/testregistrytdprovider.cxx +++ b/stoc/test/registry_tdprovider/testregistrytdprovider.cxx @@ -882,14 +882,6 @@ css::uno::Reference< css::uno::XInterface > Service::createInstance( return static_cast< cppu::OWeakObject * >(new Service(context)); } -extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - char const ** envTypeName, uno_Environment **) -{ - if (envTypeName != 0) { - *envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; - } -} - extern "C" SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(char const * implName, void * serviceManager, void *) { void * p = 0; diff --git a/stoc/test/tdmanager/testtdmanager.cxx b/stoc/test/tdmanager/testtdmanager.cxx index 694a678df..81353ae5c 100644 --- a/stoc/test/tdmanager/testtdmanager.cxx +++ b/stoc/test/tdmanager/testtdmanager.cxx @@ -313,14 +313,6 @@ css::uno::Reference< css::uno::XInterface > Service::createInstance( return static_cast< cppu::OWeakObject * >(new Service(context)); } -extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - char const ** envTypeName, uno_Environment **) -{ - if (envTypeName != 0) { - *envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; - } -} - extern "C" SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(char const * implName, void * serviceManager, void *) { void * p = 0; diff --git a/stoc/test/testsmgr_cpnt.cxx b/stoc/test/testsmgr_cpnt.cxx index 22b6a000e..a16c5e016 100644 --- a/stoc/test/testsmgr_cpnt.cxx +++ b/stoc/test/testsmgr_cpnt.cxx @@ -292,12 +292,6 @@ extern "C" void SAL_CALL test_ServiceManager() extern "C" { //================================================================================================== -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} -//================================================================================================== sal_Bool SAL_CALL component_writeInfo( void * /*pServiceManager*/, void * pRegistryKey ) { diff --git a/stoc/test/testsmgr_cpnt.map b/stoc/test/testsmgr_cpnt.map index ab5ed357b..3cfb43578 100644 --- a/stoc/test/testsmgr_cpnt.map +++ b/stoc/test/testsmgr_cpnt.map @@ -1,6 +1,5 @@ UDK_3_0_0 { global: - component_getImplementationEnvironment; component_writeInfo; component_getFactory; test_ServiceManager; |