20 #include <osl/diagnose.h>
21 #include <osl/thread.h>
22 #include <rtl/strbuf.hxx>
25 #include <com/sun/star/lang/XInitialization.hpp>
26 #include <com/sun/star/ucb/IllegalIdentifierException.hpp>
54 return "com.sun.star.comp.ucb.UcbContentProviderProxyFactory";
62 return {
"com.sun.star.ucb.ContentProviderProxyFactory" };
68 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
70 css::uno::XComponentContext* context , css::uno::Sequence<css::uno::Any>
const&)
82 const OUString& Service )
94 const OUString& Service )
95 : m_aService( Service ),
113 OWeakObject::acquire();
119 OWeakObject::release();
127 static_cast< XTypeProvider * >(
this ),
128 static_cast< XServiceInfo * >(
this ),
129 static_cast< XContentProvider * >(
this ),
130 static_cast< XParameterizedContentProvider * >(
this ),
131 static_cast< XContentProviderSupplier * >(
this ) );
133 if ( !aRet.hasValue() )
134 aRet = OWeakObject::queryInterface( rType );
136 if ( !aRet.hasValue() )
139 osl::Guard< osl::Mutex > aGuard(
m_aMutex );
141 if ( xProvider.is() )
142 aRet = xProvider->queryInterface( rType );
158 osl::Guard< osl::Mutex > aGuard(
m_aMutex );
160 if ( xProvider.is() )
162 return xProvider->getTypes();
181 return "com.sun.star.comp.ucb.UcbContentProviderProxy";
191 return {
"com.sun.star.ucb.ContentProviderProxy" };
204 osl::Guard< osl::Mutex > aGuard(
m_aMutex );
207 if ( xProvider.is() )
208 return xProvider->queryContent( Identifier );
221 osl::Guard< osl::Mutex > aGuard(
m_aMutex );
223 if ( xProvider.is() )
224 return xProvider->compareContentIds( Id1, Id2 );
239 const OUString& Arguments,
244 osl::Guard< osl::Mutex > aGuard(
m_aMutex );
262 const OUString& Arguments )
264 osl::Guard< osl::Mutex > aGuard(
m_aMutex );
274 if ( xParamProvider.is() )
278 xParamProvider->deregisterInstance( Template, Arguments );
280 catch ( IllegalIdentifierException
const & )
282 OSL_FAIL(
"UcbContentProviderProxy::deregisterInstance - "
283 "Caught IllegalIdentifierException!" );
299 osl::Guard< osl::Mutex > aGuard(
m_aMutex );
311 xInit->initialize(aArgs);
329 if ( xParamProvider.is() )
338 catch ( IllegalIdentifierException
const & )
340 OSL_FAIL(
"UcbContentProviderProxy::getContentProvider - "
341 "Caught IllegalIdentifierException!" );
345 "UcbContentProviderProxy::getContentProvider - "
354 OStringBuffer(
"UcbContentProviderProxy::getContentProvider - No provider for '").append(
OUStringToOString(
m_aService, osl_getThreadTextEncoding())).append(
".").getStr() );
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * ucb_UcbContentProviderProxyFactory_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
css::uno::Reference< css::ucb::XContentProvider > m_xProvider
virtual css::uno::Reference< css::ucb::XContentProvider > SAL_CALL getContentProvider() override
UcbContentProviderProxyFactory(const css::uno::Reference< css::uno::XComponentContext > &rxContext)
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual OUString SAL_CALL getImplementationName() override
css::uno::Reference< css::ucb::XContentProvider > m_xTargetProvider
virtual ~UcbContentProviderProxy() override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
virtual css::uno::Reference< css::ucb::XContentProvider > SAL_CALL registerInstance(const OUString &Template, const OUString &Arguments, sal_Bool ReplaceExisting) override
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
virtual ~UcbContentProviderProxyFactory() override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
css::uno::Reference< css::uno::XComponentContext > m_xContext
XTYPEPROVIDER_COMMON_IMPL(UcbContentProviderProxy)
virtual css::uno::Reference< css::ucb::XContentProvider > SAL_CALL createContentProvider(const OUString &Service) override
virtual void SAL_CALL acquire() override
virtual css::uno::Reference< css::ucb::XContentProvider > SAL_CALL deregisterInstance(const OUString &Template, const OUString &Arguments) override
#define TOOLS_INFO_EXCEPTION(area, stream)
virtual css::uno::Reference< css::ucb::XContent > SAL_CALL queryContent(const css::uno::Reference< css::ucb::XContentIdentifier > &Identifier) override
virtual sal_Int32 SAL_CALL compareContentIds(const css::uno::Reference< css::ucb::XContentIdentifier > &Id1, const css::uno::Reference< css::ucb::XContentIdentifier > &Id2) override
css::uno::Reference< css::uno::XComponentContext > m_xContext
cppu::WeakComponentImplHelper< css::lang::XServiceInfo, css::ucb::XContentProviderFactory > UcbContentProviderProxyFactory_Base
css::uno::Sequence< css::uno::Type > SAL_CALL getTypes()
virtual OUString SAL_CALL getImplementationName() override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Reference< XComponentContext > m_xContext
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType, Interface1 *p1)
virtual void SAL_CALL release() override
UcbContentProviderProxy(const css::uno::Reference< css::uno::XComponentContext > &rxContext, const OUString &Service)