26#include <com/sun/star/ucb/ListActionType.hpp>
27#include <com/sun/star/ucb/ListenerAlreadySetException.hpp>
28#include <com/sun/star/ucb/ServiceNotFoundException.hpp>
29#include <com/sun/star/ucb/WelcomeDynamicResultSetStruct.hpp>
30#include <com/sun/star/ucb/CachedDynamicResultSetStubFactory.hpp>
31#include <com/sun/star/ucb/XSourceInitialization.hpp>
36#include <osl/diagnose.h>
48 uno::Reference< uno::XComponentContext > xContext,
49 css::ucb::OpenCommandArgument2 aCommand )
68 return "ResultSetImplHelper";
91 lang::EventObject aEvt;
92 aEvt.Source =
static_cast< lang::XComponent *
>( this );
100 const uno::Reference< lang::XEventListener >& Listener )
102 std::unique_lock aGuard(
m_aMutex );
110 const uno::Reference< lang::XEventListener >& Listener )
112 std::unique_lock aGuard(
m_aMutex );
122uno::Reference< sdbc::XResultSet > SAL_CALL
125 std::unique_lock aGuard(
m_aMutex );
128 throw css::ucb::ListenerAlreadySetException();
137 const uno::Reference< css::ucb::XDynamicResultSetListener >& Listener )
139 std::unique_lock aGuard(
m_aMutex );
142 throw css::ucb::ListenerAlreadySetException();
158 aInfo <<= css::ucb::WelcomeDynamicResultSetStruct(
162 uno::Sequence< css::ucb::ListAction > aActions {
163 css::ucb::ListAction(
166 css::ucb::ListActionType::WELCOME,
172 getXWeak(), aActions ) );
186 const uno::Reference< css::ucb::XDynamicResultSet > & xCache )
189 throw css::ucb::ListenerAlreadySetException();
192 throw css::ucb::ListenerAlreadySetException();
194 uno::Reference< css::ucb::XSourceInitialization >
xTarget( xCache, uno::UNO_QUERY );
197 uno::Reference< css::ucb::XCachedDynamicResultSetStubFactory > xStubFactory;
201 = css::ucb::CachedDynamicResultSetStubFactory::create(
204 catch ( uno::Exception
const & )
208 if ( xStubFactory.is() )
210 xStubFactory->connectToCache(
211 this, xCache,
m_aCommand.SortingInfo,
nullptr );
215 throw css::ucb::ServiceNotFoundException();
233 "ResultSetImplHelper::init - No 1st result set!" );
242 "ResultSetImplHelper::init - No 1st result set!" );
244 "ResultSetImplHelper::init - No 2nd result set!" );
Reference< XComponentContext > m_xContext
sal_Int32 addInterface(std::unique_lock< std::mutex > &rGuard, const css::uno::Reference< ListenerT > &rxIFace)
void disposeAndClear(::std::unique_lock<::std::mutex > &rGuard, const css::lang::EventObject &rEvt)
sal_Int32 getLength(std::unique_lock< std::mutex > &rGuard) const
sal_Int32 removeInterface(std::unique_lock< std::mutex > &rGuard, const css::uno::Reference< ListenerT > &rxIFace)
virtual OUString SAL_CALL getImplementationName() override
css::uno::Reference< css::uno::XComponentContext > m_xContext
virtual UCBHELPER_DLLPRIVATE void initStatic()=0
Your implementation of this method has to fill the protected member m_xResultSet1.
css::ucb::OpenCommandArgument2 m_aCommand
virtual UCBHELPER_DLLPRIVATE void initDynamic()=0
Your implementation of this method has to fill the protected members m_xResultSet1 and m_xResultSet2 ...
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
UCBHELPER_DLLPRIVATE void init(bool bStatic)
virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > &Listener) override
comphelper::OInterfaceContainerHelper4< css::lang::XEventListener > m_aDisposeEventListeners
virtual void SAL_CALL dispose() override
virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > &Listener) override
virtual ~ResultSetImplHelper() override
Destructor.
virtual css::uno::Reference< css::sdbc::XResultSet > SAL_CALL getStaticResultSet() override
virtual void SAL_CALL setListener(const css::uno::Reference< css::ucb::XDynamicResultSetListener > &Listener) override
css::uno::Reference< css::ucb::XDynamicResultSetListener > m_xListener
virtual void SAL_CALL connectToCache(const css::uno::Reference< css::ucb::XDynamicResultSet > &xCache) override
ResultSetImplHelper(css::uno::Reference< css::uno::XComponentContext > xContext, css::ucb::OpenCommandArgument2 aCommand)
Constructor.
virtual sal_Int16 SAL_CALL getCapabilities() override
The implementation of this method always returns 0.
css::uno::Reference< css::sdbc::XResultSet > m_xResultSet2
css::uno::Reference< css::sdbc::XResultSet > m_xResultSet1
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Reference< XInterface > xTarget
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
constexpr OUStringLiteral DYNAMICRESULTSET_SERVICE_NAME