diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2021-08-04 21:23:32 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-08-05 13:55:30 +0200 |
commit | 890086d292798c20134e6ce78e913ced6b25a913 (patch) | |
tree | 8a08496e905b46454401b46796b4647fbc03031f /ucb | |
parent | 4e7212c4a341eef0521c4c6300c65bf42d756fd1 (diff) |
remove pimpl in package_ucp::package_ucp
Change-Id: I066ecaffa32aa010effd6f9a27b7cd98cc098c2a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120022
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'ucb')
-rw-r--r-- | ucb/source/ucp/package/pkgdatasupplier.cxx | 158 | ||||
-rw-r--r-- | ucb/source/ucp/package/pkgdatasupplier.hxx | 24 |
2 files changed, 76 insertions, 106 deletions
diff --git a/ucb/source/ucp/package/pkgdatasupplier.cxx b/ucb/source/ucp/package/pkgdatasupplier.cxx index bcf5c1764067..a1337c2646ca 100644 --- a/ucb/source/ucp/package/pkgdatasupplier.cxx +++ b/ucb/source/ucp/package/pkgdatasupplier.cxx @@ -24,9 +24,7 @@ *************************************************************************/ -#include <vector> #include <osl/diagnose.h> -#include <com/sun/star/container/XEnumeration.hpp> #include <com/sun/star/container/XNamed.hpp> #include <com/sun/star/ucb/IllegalIdentifierException.hpp> #include <com/sun/star/ucb/ResultSetException.hpp> @@ -41,59 +39,15 @@ using namespace com::sun::star; using namespace package_ucp; -namespace package_ucp -{ - - -// struct ResultListEntry. - -namespace { - -struct ResultListEntry -{ - OUString aURL; - uno::Reference< ucb::XContentIdentifier > xId; - uno::Reference< ucb::XContent > xContent; - uno::Reference< sdbc::XRow > xRow; - - explicit ResultListEntry( const OUString& rURL ) : aURL( rURL ) {} -}; - -} - -// struct DataSupplier_Impl. - - -struct DataSupplier_Impl -{ - osl::Mutex m_aMutex; - std::vector< ResultListEntry > m_aResults; - rtl::Reference< Content > m_xContent; - uno::Reference< uno::XComponentContext > m_xContext; - uno::Reference< container::XEnumeration > m_xFolderEnum; - bool m_bCountFinal; - bool m_bThrowException; - - DataSupplier_Impl( - const uno::Reference< uno::XComponentContext >& rxContext, - const rtl::Reference< Content >& rContent ) - : m_xContent( rContent ), m_xContext( rxContext ), - m_xFolderEnum( rContent->getIterator() ), - m_bCountFinal( !m_xFolderEnum.is() ), m_bThrowException( m_bCountFinal ) - {} -}; - - -} - - // DataSupplier Implementation. DataSupplier::DataSupplier( const uno::Reference< uno::XComponentContext >& rxContext, const rtl::Reference< Content >& rContent ) -: m_pImpl( new DataSupplier_Impl( rxContext, rContent ) ) +: m_xContent( rContent ), m_xContext( rxContext ), + m_xFolderEnum( rContent->getIterator() ), + m_bCountFinal( !m_xFolderEnum.is() ), m_bThrowException( m_bCountFinal ) { } @@ -107,11 +61,11 @@ DataSupplier::~DataSupplier() // virtual OUString DataSupplier::queryContentIdentifierString( sal_uInt32 nIndex ) { - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); + osl::Guard< osl::Mutex > aGuard( m_aMutex ); - if ( nIndex < m_pImpl->m_aResults.size() ) + if ( nIndex < m_aResults.size() ) { - OUString aId = m_pImpl->m_aResults[ nIndex ].aURL; + OUString aId = m_aResults[ nIndex ].aURL; if ( !aId.isEmpty() ) { // Already cached. @@ -121,8 +75,8 @@ OUString DataSupplier::queryContentIdentifierString( sal_uInt32 nIndex ) if ( getResult( nIndex ) ) { - // Note: getResult fills m_pImpl->m_aResults[ nIndex ].aURL. - return m_pImpl->m_aResults[ nIndex ].aURL; + // Note: getResult fills m_aResults[ nIndex ].aURL. + return m_aResults[ nIndex ].aURL; } return OUString(); } @@ -132,12 +86,12 @@ OUString DataSupplier::queryContentIdentifierString( sal_uInt32 nIndex ) uno::Reference< ucb::XContentIdentifier > DataSupplier::queryContentIdentifier( sal_uInt32 nIndex ) { - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); + osl::Guard< osl::Mutex > aGuard( m_aMutex ); - if ( nIndex < m_pImpl->m_aResults.size() ) + if ( nIndex < m_aResults.size() ) { uno::Reference< ucb::XContentIdentifier >& xId - = m_pImpl->m_aResults[ nIndex ].xId; + = m_aResults[ nIndex ].xId; if ( xId.is() ) { // Already cached. @@ -150,7 +104,7 @@ DataSupplier::queryContentIdentifier( sal_uInt32 nIndex ) { uno::Reference< ucb::XContentIdentifier > xId = new ::ucbhelper::ContentIdentifier( aId ); - m_pImpl->m_aResults[ nIndex ].xId = xId; + m_aResults[ nIndex ].xId = xId; return xId; } return uno::Reference< ucb::XContentIdentifier >(); @@ -161,12 +115,12 @@ DataSupplier::queryContentIdentifier( sal_uInt32 nIndex ) uno::Reference< ucb::XContent > DataSupplier::queryContent( sal_uInt32 nIndex ) { - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); + osl::Guard< osl::Mutex > aGuard( m_aMutex ); - if ( nIndex < m_pImpl->m_aResults.size() ) + if ( nIndex < m_aResults.size() ) { uno::Reference< ucb::XContent >& xContent - = m_pImpl->m_aResults[ nIndex ].xContent; + = m_aResults[ nIndex ].xContent; if ( xContent.is() ) { // Already cached. @@ -181,8 +135,8 @@ uno::Reference< ucb::XContent > DataSupplier::queryContent( try { uno::Reference< ucb::XContent > xContent - = m_pImpl->m_xContent->getProvider()->queryContent( xId ); - m_pImpl->m_aResults[ nIndex ].xContent = xContent; + = m_xContent->getProvider()->queryContent( xId ); + m_aResults[ nIndex ].xContent = xContent; return xContent; } @@ -197,9 +151,9 @@ uno::Reference< ucb::XContent > DataSupplier::queryContent( // virtual bool DataSupplier::getResult( sal_uInt32 nIndex ) { - osl::ClearableGuard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); + osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex ); - if ( m_pImpl->m_aResults.size() > nIndex ) + if ( m_aResults.size() > nIndex ) { // Result already present. return true; @@ -207,21 +161,21 @@ bool DataSupplier::getResult( sal_uInt32 nIndex ) // Result not (yet) present. - if ( m_pImpl->m_bCountFinal ) + if ( m_bCountFinal ) return false; // Try to obtain result... - sal_uInt32 nOldCount = m_pImpl->m_aResults.size(); + sal_uInt32 nOldCount = m_aResults.size(); bool bFound = false; sal_uInt32 nPos = nOldCount; - while ( m_pImpl->m_xFolderEnum->hasMoreElements() ) + while ( m_xFolderEnum->hasMoreElements() ) { try { uno::Reference< container::XNamed > xNamed; - m_pImpl->m_xFolderEnum->nextElement() >>= xNamed; + m_xFolderEnum->nextElement() >>= xNamed; if ( !xNamed.is() ) { @@ -240,7 +194,7 @@ bool DataSupplier::getResult( sal_uInt32 nIndex ) // Assemble URL for child. OUString aURL = assembleChildURL( aName ); - m_pImpl->m_aResults.push_back( ResultListEntry( aURL ) ); + m_aResults.push_back( ResultListEntry( aURL ) ); if ( nPos == nIndex ) { @@ -253,18 +207,18 @@ bool DataSupplier::getResult( sal_uInt32 nIndex ) } catch ( container::NoSuchElementException const & ) { - m_pImpl->m_bThrowException = true; + m_bThrowException = true; break; } catch ( lang::WrappedTargetException const & ) { - m_pImpl->m_bThrowException = true; + m_bThrowException = true; break; } } if ( !bFound ) - m_pImpl->m_bCountFinal = true; + m_bCountFinal = true; rtl::Reference< ::ucbhelper::ResultSet > xResultSet = getResultSet(); if ( xResultSet.is() ) @@ -272,11 +226,11 @@ bool DataSupplier::getResult( sal_uInt32 nIndex ) // Callbacks follow! aGuard.clear(); - if ( nOldCount < m_pImpl->m_aResults.size() ) + if ( nOldCount < m_aResults.size() ) xResultSet->rowCountChanged( - nOldCount, m_pImpl->m_aResults.size() ); + nOldCount, m_aResults.size() ); - if ( m_pImpl->m_bCountFinal ) + if ( m_bCountFinal ) xResultSet->rowCountFinal(); } @@ -287,19 +241,19 @@ bool DataSupplier::getResult( sal_uInt32 nIndex ) // virtual sal_uInt32 DataSupplier::totalCount() { - osl::ClearableGuard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); + osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex ); - if ( m_pImpl->m_bCountFinal ) - return m_pImpl->m_aResults.size(); + if ( m_bCountFinal ) + return m_aResults.size(); - sal_uInt32 nOldCount = m_pImpl->m_aResults.size(); + sal_uInt32 nOldCount = m_aResults.size(); - while ( m_pImpl->m_xFolderEnum->hasMoreElements() ) + while ( m_xFolderEnum->hasMoreElements() ) { try { uno::Reference< container::XNamed > xNamed; - m_pImpl->m_xFolderEnum->nextElement() >>= xNamed; + m_xFolderEnum->nextElement() >>= xNamed; if ( !xNamed.is() ) { @@ -318,21 +272,21 @@ sal_uInt32 DataSupplier::totalCount() // Assemble URL for child. OUString aURL = assembleChildURL( aName ); - m_pImpl->m_aResults.push_back( ResultListEntry( aURL ) ); + m_aResults.push_back( ResultListEntry( aURL ) ); } catch ( container::NoSuchElementException const & ) { - m_pImpl->m_bThrowException = true; + m_bThrowException = true; break; } catch ( lang::WrappedTargetException const & ) { - m_pImpl->m_bThrowException = true; + m_bThrowException = true; break; } } - m_pImpl->m_bCountFinal = true; + m_bCountFinal = true; rtl::Reference< ::ucbhelper::ResultSet > xResultSet = getResultSet(); if ( xResultSet.is() ) @@ -340,28 +294,28 @@ sal_uInt32 DataSupplier::totalCount() // Callbacks follow! aGuard.clear(); - if ( nOldCount < m_pImpl->m_aResults.size() ) + if ( nOldCount < m_aResults.size() ) xResultSet->rowCountChanged( - nOldCount, m_pImpl->m_aResults.size() ); + nOldCount, m_aResults.size() ); xResultSet->rowCountFinal(); } - return m_pImpl->m_aResults.size(); + return m_aResults.size(); } // virtual sal_uInt32 DataSupplier::currentCount() { - return m_pImpl->m_aResults.size(); + return m_aResults.size(); } // virtual bool DataSupplier::isCountFinal() { - return m_pImpl->m_bCountFinal; + return m_bCountFinal; } @@ -369,11 +323,11 @@ bool DataSupplier::isCountFinal() uno::Reference< sdbc::XRow > DataSupplier::queryPropertyValues( sal_uInt32 nIndex ) { - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); + osl::Guard< osl::Mutex > aGuard( m_aMutex ); - if ( nIndex < m_pImpl->m_aResults.size() ) + if ( nIndex < m_aResults.size() ) { - uno::Reference< sdbc::XRow >& xRow = m_pImpl->m_aResults[ nIndex ].xRow; + uno::Reference< sdbc::XRow >& xRow = m_aResults[ nIndex ].xRow; if ( xRow.is() ) { // Already cached. @@ -384,12 +338,12 @@ uno::Reference< sdbc::XRow > DataSupplier::queryPropertyValues( if ( getResult( nIndex ) ) { uno::Reference< sdbc::XRow > xRow = Content::getPropertyValues( - m_pImpl->m_xContext, + m_xContext, getResultSet()->getProperties(), static_cast< ContentProvider * >( - m_pImpl->m_xContent->getProvider().get() ), + m_xContent->getProvider().get() ), queryContentIdentifierString( nIndex ) ); - m_pImpl->m_aResults[ nIndex ].xRow = xRow; + m_aResults[ nIndex ].xRow = xRow; return xRow; } @@ -400,10 +354,10 @@ uno::Reference< sdbc::XRow > DataSupplier::queryPropertyValues( // virtual void DataSupplier::releasePropertyValues( sal_uInt32 nIndex ) { - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); + osl::Guard< osl::Mutex > aGuard( m_aMutex ); - if ( nIndex < m_pImpl->m_aResults.size() ) - m_pImpl->m_aResults[ nIndex ].xRow.clear(); + if ( nIndex < m_aResults.size() ) + m_aResults[ nIndex ].xRow.clear(); } @@ -416,7 +370,7 @@ void DataSupplier::close() // virtual void DataSupplier::validate() { - if ( m_pImpl->m_bThrowException ) + if ( m_bThrowException ) throw ucb::ResultSetException(); } @@ -425,7 +379,7 @@ OUString DataSupplier::assembleChildURL( const OUString& aName ) { OUString aURL; OUString aContURL - = m_pImpl->m_xContent->getIdentifier()->getContentIdentifier(); + = m_xContent->getIdentifier()->getContentIdentifier(); sal_Int32 nParam = aContURL.indexOf( '?' ); if ( nParam >= 0 ) { diff --git a/ucb/source/ucp/package/pkgdatasupplier.hxx b/ucb/source/ucp/package/pkgdatasupplier.hxx index 69a1416d787c..f1ce38fcbb1f 100644 --- a/ucb/source/ucp/package/pkgdatasupplier.hxx +++ b/ucb/source/ucp/package/pkgdatasupplier.hxx @@ -21,17 +21,15 @@ #include <rtl/ref.hxx> #include <ucbhelper/resultset.hxx> -#include <memory> +#include <com/sun/star/container/XEnumeration.hpp> +#include <vector> namespace package_ucp { -struct DataSupplier_Impl; class Content; class DataSupplier : public ::ucbhelper::ResultSetDataSupplier { - std::unique_ptr<DataSupplier_Impl> m_pImpl; - public: DataSupplier( const css::uno::Reference< css::uno::XComponentContext >& rxContext, const rtl::Reference< Content >& rContent ); @@ -58,6 +56,24 @@ public: virtual void validate() override; OUString assembleChildURL( const OUString& aName ); + +private: + struct ResultListEntry + { + OUString aURL; + css::uno::Reference< css::ucb::XContentIdentifier > xId; + css::uno::Reference< css::ucb::XContent > xContent; + css::uno::Reference< css::sdbc::XRow > xRow; + + explicit ResultListEntry( const OUString& rURL ) : aURL( rURL ) {} + }; + osl::Mutex m_aMutex; + std::vector< ResultListEntry > m_aResults; + rtl::Reference< Content > m_xContent; + css::uno::Reference< css::uno::XComponentContext > m_xContext; + css::uno::Reference< css::container::XEnumeration > m_xFolderEnum; + bool m_bCountFinal; + bool m_bThrowException; }; } |