23#include <com/sun/star/uno/XComponentContext.hpp>
24#include <com/sun/star/lang/XTypeProvider.hpp>
25#include <com/sun/star/lang/XServiceInfo.hpp>
26#include <com/sun/star/ucb/XFetchProvider.hpp>
27#include <com/sun/star/ucb/XFetchProviderForContentAccess.hpp>
28#include <com/sun/star/ucb/FetchResult.hpp>
29#include <com/sun/star/ucb/XContentIdentifierMapping.hpp>
30#include <com/sun/star/ucb/XCachedContentResultSetFactory.hpp>
43 ,
public css::lang::XTypeProvider
44 ,
public css::lang::XServiceInfo
51 std::optional<css::ucb::FetchResult>
53 css::uno::Reference< css::ucb::XContentIdentifierMapping >
72 css::ucb::XContentIdentifierMapping > & xMapping );
76 const css::ucb::FetchResult& rResult );
79 hasRow( sal_Int32 nRow )
const;
93 getAny( sal_Int32 nRow, sal_Int32 nColumnIndex );
100 css::uno::Reference< css::ucb::XContentIdentifier >
104 css::uno::Reference< css::ucb::XContent >
110 css::uno::Reference< css::uno::XComponentContext >
114 css::uno::Reference< css::ucb::XFetchProvider >
117 css::uno::Reference< css::ucb::XFetchProviderForContentAccess >
124 css::uno::Reference< css::ucb::XContentIdentifierMapping >
162 impl_fetchData( std::unique_lock<std::mutex>& rGuard, sal_Int32 nRow, sal_Int32 nCount
163 , sal_Int32 nFetchDirection );
172 impl_changeRowCount( std::unique_lock<std::mutex>& rGuard, sal_Int32 nOld, sal_Int32 nNew );
179 const css::uno::Reference< css::uno::XComponentContext > & rxContext,
180 const css::uno::Reference< css::sdbc::XResultSet > & xOrigin,
181 const css::uno::Reference< css::ucb::XContentIdentifierMapping > & xContentIdentifierMapping );
187 virtual css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type & rType )
override;
188 virtual void SAL_CALL
acquire()
190 virtual
void SAL_CALL
release()
208 const css::
uno::Any& aValue ) override;
210 virtual css::
uno::Any SAL_CALL
231 virtual css::
uno::Reference<
232 css::
ucb::XContentIdentifier > SAL_CALL
235 virtual css::
uno::Reference<
236 css::
ucb::XContent > SAL_CALL
252 virtual
void SAL_CALL
254 virtual
void SAL_CALL
260 virtual sal_Int32 SAL_CALL
265 relative( sal_Int32 rows ) override;
268 virtual
void SAL_CALL
276 virtual css::
uno::Reference<
286 virtual OUString SAL_CALL
287 getString( sal_Int32 columnIndex ) override;
293 getByte( sal_Int32 columnIndex ) override;
295 virtual sal_Int16 SAL_CALL
296 getShort( sal_Int32 columnIndex ) override;
298 virtual sal_Int32 SAL_CALL
299 getInt( sal_Int32 columnIndex ) override;
301 virtual sal_Int64 SAL_CALL
302 getLong( sal_Int32 columnIndex ) override;
304 virtual
float SAL_CALL
305 getFloat( sal_Int32 columnIndex ) override;
307 virtual
double SAL_CALL
308 getDouble( sal_Int32 columnIndex ) override;
311 getBytes( sal_Int32 columnIndex ) override;
313 virtual css::util::
Date SAL_CALL
314 getDate( sal_Int32 columnIndex ) override;
316 virtual css::util::Time SAL_CALL
317 getTime( sal_Int32 columnIndex ) override;
319 virtual css::util::
DateTime SAL_CALL
322 virtual css::
uno::Reference< css::io::XInputStream > SAL_CALL
325 virtual css::
uno::Reference< css::io::XInputStream > SAL_CALL
328 virtual css::
uno::Any SAL_CALL
330 const css::
uno::Reference< css::container::XNameAccess >& typeMap ) override;
332 virtual css::
uno::Reference< css::sdbc::XRef > SAL_CALL
333 getRef( sal_Int32 columnIndex ) override;
335 virtual css::
uno::Reference< css::sdbc::XBlob > SAL_CALL
336 getBlob( sal_Int32 columnIndex ) override;
338 virtual css::
uno::Reference< css::sdbc::XClob > SAL_CALL
339 getClob( sal_Int32 columnIndex ) override;
341 virtual css::
uno::Reference< css::sdbc::XArray > SAL_CALL
342 getArray( sal_Int32 columnIndex ) override;
352 const css::
uno::Reference<
356 T (SAL_CALL css::sdbc::XRow::* f)(sal_Int32), sal_Int32 columnIndex);
361 public
cppu::WeakImplHelper<
362 css::lang::XServiceInfo,
363 css::
ucb::XCachedContentResultSetFactory>
365 css::uno::Reference< css::uno::XComponentContext >
m_xContext;
380 virtual css::uno::Reference< css::sdbc::XResultSet > SAL_CALL
381 createCachedContentResultSet(
382 const css::uno::Reference< css::sdbc::XResultSet > & xSource,
383 const css::uno::Reference< css::ucb::XContentIdentifierMapping > & xMapping )
override;
css::uno::Reference< css::uno::XComponentContext > m_xContext
void remindMapped(sal_Int32 nRow)
const css::uno::Any & getAny(sal_Int32 nRow, sal_Int32 nColumnIndex)
bool hasCausedException(sal_Int32 nRow) const
bool hasKnownLast() const
css::uno::Any & getRowAny(sal_Int32 nRow)
bool hasRow(sal_Int32 nRow) const
CCRS_Cache(const css::uno::Reference< css::ucb::XContentIdentifierMapping > &xMapping)
css::uno::Sequence< sal_Bool > & getMappedReminder()
css::uno::Reference< css::ucb::XContentIdentifierMapping > m_xContentIdentifierMapping
void loadData(const css::ucb::FetchResult &rResult)
css::uno::Reference< css::ucb::XContentIdentifier > getContentIdentifier(sal_Int32 nRow)
css::uno::Reference< css::ucb::XContent > getContent(sal_Int32 nRow)
std::optional< css::uno::Sequence< sal_Bool > > m_pMappedReminder
std::optional< css::ucb::FetchResult > m_pResult
bool isRowMapped(sal_Int32 nRow)
OUString const & getContentIdentifierString(sal_Int32 nRow)
sal_Int32 getMaxRow() const
virtual ~CachedContentResultSet() override
const css::uno::Reference< css::script::XTypeConverter > & getTypeConverter(std::unique_lock< std::mutex > &rGuard)
bool m_bTriedToGetTypeConverter
virtual void impl_propertyChange(const css::beans::PropertyChangeEvent &evt) override
virtual css::uno::Reference< css::ucb::XContentIdentifier > SAL_CALL queryContentIdentifier() override
virtual css::util::Date SAL_CALL getDate(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
bool impl_isKnownValidPosition(std::unique_lock< std::mutex > &rGuard, sal_Int32 nRow) const
bool impl_isKnownInvalidPosition(std::unique_lock< std::mutex > &rGuard, sal_Int32 nRow) const
virtual OUString queryContentIdentifierStringImpl(std::unique_lock< std::mutex > &rGuard) override
virtual float SAL_CALL getFloat(sal_Int32 columnIndex) override
CCRS_Cache m_aCacheContentIdentifier
virtual sal_Bool SAL_CALL rowInserted() override
virtual css::util::DateTime SAL_CALL getTimestamp(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL getBoolean(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL first() override
sal_Int32 m_nLastAppliedPos
virtual sal_Bool SAL_CALL last() override
CachedContentResultSet(const css::uno::Reference< css::uno::XComponentContext > &rxContext, const css::uno::Reference< css::sdbc::XResultSet > &xOrigin, const css::uno::Reference< css::ucb::XContentIdentifierMapping > &xContentIdentifierMapping)
void impl_fetchData(std::unique_lock< std::mutex > &rGuard, sal_Int32 nRow, sal_Int32 nCount, sal_Int32 nFetchDirection)
virtual sal_Bool SAL_CALL isBeforeFirst() override
virtual sal_Int16 SAL_CALL getShort(sal_Int32 columnIndex) override
virtual css::uno::Any SAL_CALL getObject(sal_Int32 columnIndex, const css::uno::Reference< css::container::XNameAccess > &typeMap) override
virtual void SAL_CALL release() noexcept override
virtual css::uno::Reference< css::ucb::XContent > SAL_CALL queryContent() override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
CCRS_Cache m_aCacheContent
virtual double SAL_CALL getDouble(sal_Int32 columnIndex) override
virtual css::util::Time SAL_CALL getTime(sal_Int32 columnIndex) override
virtual void setPropertyValueImpl(std::unique_lock< std::mutex > &rGuard, const OUString &aPropertyName, const css::uno::Any &aValue) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
CCRS_Cache m_aCacheContentIdentifierString
bool m_bLastReadWasFromCache
css::uno::Reference< css::script::XTypeConverter > m_xTypeConverter
virtual sal_Int32 SAL_CALL getInt(sal_Int32 columnIndex) override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
virtual void impl_vetoableChange(const css::beans::PropertyChangeEvent &aEvent) override
virtual sal_Bool SAL_CALL next() override
virtual css::uno::Reference< css::sdbc::XArray > SAL_CALL getArray(sal_Int32 columnIndex) override
virtual OUString SAL_CALL getString(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL isFirst() override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
void impl_changeIsRowCountFinal(std::unique_lock< std::mutex > &rGuard, bool bOld, bool bNew)
css::uno::Reference< css::ucb::XFetchProvider > m_xFetchProvider
virtual css::uno::Reference< css::sdbc::XClob > SAL_CALL getClob(sal_Int32 columnIndex) override
virtual void SAL_CALL afterLast() override
virtual sal_Int64 SAL_CALL getLong(sal_Int32 columnIndex) override
virtual void SAL_CALL refreshRow() override
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getStatement() override
T rowOriginGet(T(SAL_CALL css::sdbc::XRow::*f)(sal_Int32), sal_Int32 columnIndex)
css::uno::Reference< css::uno::XComponentContext > m_xContext
virtual void SAL_CALL beforeFirst() override
virtual sal_Bool SAL_CALL isLast() override
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getCharacterStream(sal_Int32 columnIndex) override
bool m_bLastCachedReadWasNull
virtual sal_Bool SAL_CALL isAfterLast() override
bool applyPositionToOrigin(std::unique_lock< std::mutex > &rGuard, sal_Int32 nRow)
sal_Int32 m_nFetchDirection
virtual OUString SAL_CALL getImplementationName() override
void impl_changeRowCount(std::unique_lock< std::mutex > &rGuard, sal_Int32 nOld, sal_Int32 nNew)
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getBytes(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL wasNull() override
virtual void SAL_CALL acquire() noexcept override
virtual sal_Int32 SAL_CALL getRow() override
virtual sal_Bool SAL_CALL rowDeleted() override
virtual sal_Bool SAL_CALL absolute(sal_Int32 row) override
virtual void impl_disposing(const css::lang::EventObject &Source) override
virtual css::uno::Reference< css::sdbc::XRef > SAL_CALL getRef(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL previous() override
virtual void impl_initPropertySetInfo(std::unique_lock< std::mutex > &rGuard) override
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
virtual sal_Bool SAL_CALL rowUpdated() override
css::uno::Reference< css::ucb::XContentIdentifierMapping > m_xContentIdentifierMapping
virtual sal_Bool SAL_CALL relative(sal_Int32 rows) override
css::uno::Reference< css::ucb::XFetchProviderForContentAccess > m_xFetchProviderForContentAccess
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getBinaryStream(sal_Int32 columnIndex) override
virtual css::uno::Reference< css::sdbc::XBlob > SAL_CALL getBlob(sal_Int32 columnIndex) override
rtl::Reference< CCRS_PropertySetInfo > m_xMyPropertySetInfo
virtual sal_Int8 SAL_CALL getByte(sal_Int32 columnIndex) override