diff options
author | Arkadiy Illarionov <qarkai@gmail.com> | 2018-10-20 22:15:25 +0300 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-10-22 09:47:59 +0200 |
commit | e06afb0c9546ddcde1cedd75f59001396ac6fdf2 (patch) | |
tree | c5e60976b74bd102bff3e58381e53bb949c6ea22 /ucb | |
parent | 8959bb300b05be9fafbf30e553b35fb517bdf786 (diff) |
Simplify containers iterations in ucb, ucbhelper
Use range-based loop or replace with STL functions.
Change-Id: I3cdb0f89523008199af1550de164a52b75c52ba5
Reviewed-on: https://gerrit.libreoffice.org/62088
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'ucb')
31 files changed, 377 insertions, 816 deletions
diff --git a/ucb/source/core/ucb.cxx b/ucb/source/core/ucb.cxx index 8672fa26a7a0..6b3cf12a8f3b 100644 --- a/ucb/source/core/ucb.cxx +++ b/ucb/source/core/ucb.cxx @@ -464,16 +464,10 @@ void SAL_CALL UniversalContentBroker::deregisterContentProvider( { ProviderList_Impl & rList = aMapIt->getValue(); - ProviderList_Impl::iterator aListEnd(rList.end()); - for (ProviderList_Impl::iterator aListIt(rList.begin()); - aListIt != aListEnd; ++aListIt) - { - if ((*aListIt).getProvider() == Provider) - { - rList.erase(aListIt); - break; - } - } + auto aListIt = std::find_if(rList.begin(), rList.end(), + [&Provider](const ProviderListEntry_Impl& rEntry) { return rEntry.getProvider() == Provider; }); + if (aListIt != rList.end()) + rList.erase(aListIt); if (rList.empty()) m_aProviders.erase(aMapIt); @@ -810,20 +804,18 @@ void UniversalContentBroker::configureUcb() void UniversalContentBroker::prepareAndRegister( const ContentProviderDataList& rData) { - ContentProviderDataList::const_iterator aEnd(rData.end()); - for (ContentProviderDataList::const_iterator aIt(rData.begin()); - aIt != aEnd; ++aIt) + for (const auto& rContentProviderData : rData) { OUString aProviderArguments; - if (fillPlaceholders(aIt->Arguments, + if (fillPlaceholders(rContentProviderData.Arguments, m_aArguments, &aProviderArguments)) { registerAtUcb(this, m_xContext, - aIt->ServiceName, + rContentProviderData.ServiceName, aProviderArguments, - aIt->URLTemplate); + rContentProviderData.URLTemplate); } else diff --git a/ucb/source/ucp/cmis/cmis_content.cxx b/ucb/source/ucp/cmis/cmis_content.cxx index 65cb142f67bd..8a680d6193bb 100644 --- a/ucb/source/ucp/cmis/cmis_content.cxx +++ b/ucb/source/ucp/cmis/cmis_content.cxx @@ -44,6 +44,7 @@ #endif #include <comphelper/processfactory.hxx> +#include <comphelper/sequence.hxx> #include <cppuhelper/exc_hlp.hxx> #include <config_oauth2.h> #include <o3tl/runtimetooustring.hxx> @@ -106,11 +107,9 @@ namespace uno::Sequence< OUString > aStrings( aCmisStrings.size( ) ); OUString* aStringsArr = aStrings.getArray( ); sal_Int32 i = 0; - for ( vector< string >::iterator it = aCmisStrings.begin( ); - it != aCmisStrings.end( ); ++it, ++i ) + for ( const auto& rCmisStr : aCmisStrings ) { - string str = *it; - aStringsArr[i] = STD_TO_OUSTR( str ); + aStringsArr[i++] = STD_TO_OUSTR( rCmisStr ); } aValue <<= aStrings; } @@ -121,10 +120,9 @@ namespace uno::Sequence< sal_Int64 > aLongs( aCmisLongs.size( ) ); sal_Int64* aLongsArr = aLongs.getArray( ); sal_Int32 i = 0; - for ( vector< long >::iterator it = aCmisLongs.begin( ); - it != aCmisLongs.end( ); ++it, ++i ) + for ( const auto& rCmisLong : aCmisLongs ) { - aLongsArr[i] = *it; + aLongsArr[i++] = rCmisLong; } aValue <<= aLongs; } @@ -132,14 +130,7 @@ namespace case libcmis::PropertyType::Decimal: { vector< double > aCmisDoubles = pProperty->getDoubles( ); - uno::Sequence< double > aDoubles( aCmisDoubles.size( ) ); - double* aDoublesArr = aDoubles.getArray( ); - sal_Int32 i = 0; - for ( vector< double >::iterator it = aCmisDoubles.begin( ); - it != aCmisDoubles.end( ); ++it, ++i ) - { - aDoublesArr[i] = *it; - } + uno::Sequence< double > aDoubles = comphelper::containerToSequence(aCmisDoubles); aValue <<= aDoubles; } break; @@ -149,10 +140,9 @@ namespace uno::Sequence< sal_Bool > aBools( aCmisBools.size( ) ); sal_Bool* aBoolsArr = aBools.getArray( ); sal_Int32 i = 0; - for ( vector< bool >::iterator it = aCmisBools.begin( ); - it != aCmisBools.end( ); ++it, ++i ) + for ( const auto& rCmisBool : aCmisBools ) { - aBoolsArr[i] = *it; + aBoolsArr[i++] = rCmisBool; } aValue <<= aBools; } @@ -163,10 +153,9 @@ namespace uno::Sequence< util::DateTime > aTimes( aCmisTimes.size( ) ); util::DateTime* aTimesArr = aTimes.getArray( ); sal_Int32 i = 0; - for ( vector< boost::posix_time::ptime >::iterator it = aCmisTimes.begin( ); - it != aCmisTimes.end( ); ++it, ++i ) + for ( const auto& rCmisTime : aCmisTimes ) { - aTimesArr[i] = lcl_boostToUnoTime( *it ); + aTimesArr[i++] = lcl_boostToUnoTime( rCmisTime ); } aValue <<= aTimes; } @@ -479,15 +468,17 @@ namespace cmis if ( pProperty ) { vector< string > typesIds = pProperty->getStrings( ); - for ( vector< string >::iterator typeIt = typesIds.begin(); - typeIt != typesIds.end() && !m_pObjectType; ++typeIt ) + for ( const auto& rType : typesIds ) { bTypeRestricted = true; - libcmis::ObjectTypePtr type = getSession( xEnv )->getType( *typeIt ); + libcmis::ObjectTypePtr type = getSession( xEnv )->getType( rType ); // FIXME Improve performances by adding getBaseTypeId( ) method to libcmis if ( type->getBaseType( )->getId( ) == typeId ) + { m_pObjectType = type; + break; + } } } } @@ -550,12 +541,10 @@ namespace cmis if (pParentFolder) { vector< libcmis::ObjectPtr > children = pParentFolder->getChildren(); - for (vector< libcmis::ObjectPtr >::iterator it = children.begin(); - it != children.end() && !m_pObject; ++it) - { - if ((*it)->getName() == sName) - m_pObject = *it; - } + auto it = std::find_if(children.begin(), children.end(), + [&sName](const libcmis::ObjectPtr& rChild) { return rChild->getName() == sName; }); + if (it != children.end()) + m_pObject = *it; } } @@ -851,15 +840,14 @@ namespace cmis uno::Sequence< document::CmisProperty > aCmisProperties( aProperties.size( ) ); document::CmisProperty* pCmisProps = aCmisProperties.getArray( ); sal_Int32 i = 0; - for ( map< string, libcmis::PropertyPtr >::iterator it = aProperties.begin(); - it != aProperties.end( ); ++it, ++i ) + for ( const auto& rProperty : aProperties ) { - string sId = it->first; - string sDisplayName = it->second->getPropertyType()->getDisplayName( ); - bool bUpdatable = it->second->getPropertyType()->isUpdatable( ); - bool bRequired = it->second->getPropertyType()->isRequired( ); - bool bMultiValued = it->second->getPropertyType()->isMultiValued(); - bool bOpenChoice = it->second->getPropertyType()->isOpenChoice(); + string sId = rProperty.first; + string sDisplayName = rProperty.second->getPropertyType()->getDisplayName( ); + bool bUpdatable = rProperty.second->getPropertyType()->isUpdatable( ); + bool bRequired = rProperty.second->getPropertyType()->isRequired( ); + bool bMultiValued = rProperty.second->getPropertyType()->isMultiValued(); + bool bOpenChoice = rProperty.second->getPropertyType()->isOpenChoice(); pCmisProps[i].Id = STD_TO_OUSTR( sId ); pCmisProps[i].Name = STD_TO_OUSTR( sDisplayName ); @@ -867,8 +855,8 @@ namespace cmis pCmisProps[i].Required = bRequired; pCmisProps[i].MultiValued = bMultiValued; pCmisProps[i].OpenChoice = bOpenChoice; - pCmisProps[i].Value = lcl_cmisPropertyToUno( it->second ); - switch ( it->second->getPropertyType( )->getType( ) ) + pCmisProps[i].Value = lcl_cmisPropertyToUno( rProperty.second ); + switch ( rProperty.second->getPropertyType( )->getType( ) ) { default: case libcmis::PropertyType::String: @@ -887,7 +875,7 @@ namespace cmis pCmisProps[i].Type = CMIS_TYPE_DATETIME; break; } - + ++i; } xRow->appendObject( rProp.Name, uno::makeAny( aCmisProperties ) ); } @@ -1177,11 +1165,9 @@ namespace cmis // Get the Original document (latest version) vector< libcmis::DocumentPtr > aVersions = pPwc->getAllVersions( ); - bool bFound = false; - for ( vector< libcmis::DocumentPtr >::iterator it = aVersions.begin(); - it != aVersions.end( ) && !bFound; ++it ) + for ( const auto& rVersion : aVersions ) { - libcmis::DocumentPtr pVersion = *it; + libcmis::DocumentPtr pVersion = rVersion; map< string, libcmis::PropertyPtr > aProps = pVersion->getProperties( ); bool bIsLatestVersion = false; map< string, libcmis::PropertyPtr >::iterator propIt = aProps.find( string( "cmis:isLatestVersion" ) ); @@ -1192,7 +1178,6 @@ namespace cmis if ( bIsLatestVersion ) { - bFound = true; // Compute the URL of the Document URL aCmisUrl( m_sURL ); vector< string > aPaths = pVersion->getPaths( ); @@ -1209,6 +1194,7 @@ namespace cmis aCmisUrl.setObjectId( STD_TO_OUSTR( sId ) ); } aRet = aCmisUrl.asString( ); + break; } } } @@ -1241,14 +1227,14 @@ namespace cmis vector< libcmis::DocumentPtr > aCmisVersions = pDoc->getAllVersions( ); uno::Sequence< document::CmisVersion > aVersions( aCmisVersions.size( ) ); int i = 0; - for ( vector< libcmis::DocumentPtr >::iterator it = aCmisVersions.begin(); - it != aCmisVersions.end( ); ++it, ++i ) + for ( const auto& rVersion : aCmisVersions ) { - libcmis::DocumentPtr pVersion = *it; + libcmis::DocumentPtr pVersion = rVersion; aVersions[i].Id = STD_TO_OUSTR( pVersion->getId( ) ); aVersions[i].Author = STD_TO_OUSTR( pVersion->getCreatedBy( ) ); aVersions[i].TimeStamp = lcl_boostToUnoTime( pVersion->getLastModificationDate( ) ); aVersions[i].Comment = STD_TO_OUSTR( pVersion->getStringProperty("cmis:checkinComment") ); + ++i; } return aVersions; } @@ -2049,8 +2035,7 @@ namespace cmis vector< libcmis::ObjectPtr > children = pFolder->getChildren( ); // Loop over the results - for ( vector< libcmis::ObjectPtr >::iterator it = children.begin(); - it != children.end(); ++it ) + for ( const auto& rChild : children ) { // TODO Cache the objects @@ -2061,15 +2046,15 @@ namespace cmis OUString sPath( m_sObjectPath ); if ( !sPath.endsWith("/") ) sPath += "/"; - sPath += STD_TO_OUSTR( ( *it )->getName( ) ); - OUString sId = STD_TO_OUSTR( ( *it )->getId( ) ); + sPath += STD_TO_OUSTR( rChild->getName( ) ); + OUString sId = STD_TO_OUSTR( rChild->getId( ) ); aUrl.setObjectId( sId ); aUrl.setObjectPath( sPath ); aUrl.setUsername( sUser ); uno::Reference< ucb::XContentIdentifier > xId = new ucbhelper::ContentIdentifier( aUrl.asString( ) ); - uno::Reference< ucb::XContent > xContent = new Content( m_xContext, m_pProvider, xId, *it ); + uno::Reference< ucb::XContent > xContent = new Content( m_xContext, m_pProvider, xId, rChild ); results.push_back( xContent ); } diff --git a/ucb/source/ucp/cmis/cmis_datasupplier.cxx b/ucb/source/ucp/cmis/cmis_datasupplier.cxx index 83baa3ba37aa..dead6a2d6203 100644 --- a/ucb/source/ucp/cmis/cmis_datasupplier.cxx +++ b/ucb/source/ucp/cmis/cmis_datasupplier.cxx @@ -38,16 +38,15 @@ namespace cmis std::vector< uno::Reference< ucb::XContent > > aChildren = m_pChildrenProvider->getChildren( ); // Loop over the results and filter them - for ( std::vector< uno::Reference< ucb::XContent > >::iterator it = aChildren.begin(); - it != aChildren.end(); ++it ) + for ( const auto& rChild : aChildren ) { - OUString sContentType = ( *it )->getContentType( ); + OUString sContentType = rChild->getContentType( ); bool bIsFolder = sContentType != CMIS_FILE_TYPE; if ( ( mnOpenMode == ucb::OpenMode::FOLDERS && bIsFolder ) || ( mnOpenMode == ucb::OpenMode::DOCUMENTS && !bIsFolder ) || ( mnOpenMode == ucb::OpenMode::ALL ) ) { - maResults.emplace_back( *it ); + maResults.emplace_back( rChild ); } } mbCountFinal = true; diff --git a/ucb/source/ucp/cmis/cmis_repo_content.cxx b/ucb/source/ucp/cmis/cmis_repo_content.cxx index ca5333493c54..0e6174831e6f 100644 --- a/ucb/source/ucp/cmis/cmis_repo_content.cxx +++ b/ucb/source/ucp/cmis/cmis_repo_content.cxx @@ -243,12 +243,10 @@ namespace cmis if ( !m_sRepositoryId.isEmpty() ) { - for ( std::vector< libcmis::RepositoryPtr >::iterator it = m_aRepositories.begin( ); - it != m_aRepositories.end( ) && nullptr == repo.get( ); ++it ) - { - if ( STD_TO_OUSTR( ( *it )->getId( ) ) == m_sRepositoryId ) - repo = *it; - } + auto it = std::find_if(m_aRepositories.begin(), m_aRepositories.end(), + [&](const libcmis::RepositoryPtr& rRepo) { return STD_TO_OUSTR(rRepo->getId()) == m_sRepositoryId; }); + if (it != m_aRepositories.end()) + repo = *it; } else repo = m_aRepositories.front( ); @@ -405,11 +403,10 @@ namespace cmis if ( m_sRepositoryId.isEmpty( ) ) { - for ( std::vector< libcmis::RepositoryPtr >::iterator it = m_aRepositories.begin( ); - it != m_aRepositories.end(); ++it ) + for ( const auto& rRepo : m_aRepositories ) { URL aUrl( m_aURL ); - aUrl.setObjectPath( STD_TO_OUSTR( ( *it )->getId( ) ) ); + aUrl.setObjectPath( STD_TO_OUSTR( rRepo->getId( ) ) ); uno::Reference< ucb::XContentIdentifier > xId = new ucbhelper::ContentIdentifier( aUrl.asString( ) ); uno::Reference< ucb::XContent > xContent = new RepoContent( m_xContext, m_pProvider, xId, m_aRepositories ); diff --git a/ucb/source/ucp/file/filprp.cxx b/ucb/source/ucp/file/filprp.cxx index 6d0eb8d0d9d3..e0c6f5587971 100644 --- a/ucb/source/ucp/file/filprp.cxx +++ b/ucb/source/ucp/file/filprp.cxx @@ -45,18 +45,16 @@ XPropertySetInfo_impl::XPropertySetInfo_impl( TaskManager* pMyShell,const OUStri TaskManager::ContentMap::iterator it = m_pMyShell->m_aContent.find( aUnqPath ); TaskManager::PropertySet& properties = *(it->second.properties); - TaskManager::PropertySet::iterator it1 = properties.begin(); m_seq.realloc( properties.size() ); sal_Int32 count = 0; - while( it1 != properties.end() ) + for( const auto& rProp : properties ) { - m_seq[ count++ ] = beans::Property( it1->getPropertyName(), - it1->getHandle(), - it1->getType(), - it1->getAttributes() ); - ++it1; + m_seq[ count++ ] = beans::Property( rProp.getPropertyName(), + rProp.getHandle(), + rProp.getType(), + rProp.getAttributes() ); } } diff --git a/ucb/source/ucp/file/filtask.cxx b/ucb/source/ucp/file/filtask.cxx index 71ca460b160e..7bdd707b9b10 100644 --- a/ucb/source/ucp/file/filtask.cxx +++ b/ucb/source/ucp/file/filtask.cxx @@ -512,11 +512,10 @@ TaskManager::registerNotifier( const OUString& aUnqPath, Notifier* pNotifier ) std::vector< Notifier* >& nlist = *( it->second.notifier ); - std::vector<Notifier*>::iterator it1 = nlist.begin(); - while( it1 != nlist.end() ) // Every "Notifier" only once + std::vector<Notifier*>::iterator it1 = std::find(nlist.begin(), nlist.end(), pNotifier); + if( it1 != nlist.end() ) // Every "Notifier" only once { - if( *it1 == pNotifier ) return; - ++it1; + return; } nlist.push_back( pNotifier ); } @@ -2761,11 +2760,9 @@ TaskManager::getContentExchangedEventListeners( const OUString& aOldPrefix, // However, these may be in status BaseContent::Deleted if( copyList != nullptr ) { - std::vector< Notifier* >::iterator copyIt = copyList->begin(); - while( copyIt != copyList->end() ) + for( const auto& rCopyPtr : *copyList ) { - itnew->second.notifier->push_back( *copyIt ); - ++copyIt; + itnew->second.notifier->push_back( rCopyPtr ); } } } diff --git a/ucb/source/ucp/gio/gio_content.cxx b/ucb/source/ucp/gio/gio_content.cxx index 9a701013f06f..bc840e699fe5 100644 --- a/ucb/source/ucp/gio/gio_content.cxx +++ b/ucb/source/ucp/gio/gio_content.cxx @@ -571,12 +571,9 @@ void Content::queryChildren( ContentRefList& rChildren ) sal_Int32 nLen = aURL.getLength(); - ucbhelper::ContentRefList::const_iterator it = aAllContents.begin(); - ucbhelper::ContentRefList::const_iterator end = aAllContents.end(); - - while ( it != end ) + for ( const auto& rContent : aAllContents ) { - ucbhelper::ContentImplHelperRef xChild = (*it); + ucbhelper::ContentImplHelperRef xChild = rContent; OUString aChildURL = xChild->getIdentifier()->getContentIdentifier(); // Is aURL a prefix of aChildURL? @@ -591,7 +588,6 @@ void Content::queryChildren( ContentRefList& rChildren ) rChildren.emplace_back(static_cast< ::gio::Content * >(xChild.get() ) ); } } - ++it; } } @@ -617,12 +613,9 @@ bool Content::exchangeIdentity( const uno::Reference< ucb::XContentIdentifier >& ContentRefList aChildren; queryChildren( aChildren ); - ContentRefList::const_iterator it = aChildren.begin(); - ContentRefList::const_iterator end = aChildren.end(); - - while ( it != end ) + for ( const auto& rChild : aChildren ) { - ContentRef xChild = (*it); + ContentRef xChild = rChild; // Create new content identifier for the child... uno::Reference< ucb::XContentIdentifier > xOldChildId = xChild->getIdentifier(); @@ -635,10 +628,8 @@ bool Content::exchangeIdentity( const uno::Reference< ucb::XContentIdentifier >& if ( !xChild->exchangeIdentity( xNewChildId ) ) return false; - - ++it; - } - return true; + } + return true; } return false; @@ -1011,13 +1002,9 @@ void Content::destroy( bool bDeletePhysical ) ::gio::Content::ContentRefList aChildren; queryChildren( aChildren ); - ContentRefList::const_iterator it = aChildren.begin(); - ContentRefList::const_iterator end = aChildren.end(); - - while ( it != end ) + for ( auto& rChild : aChildren ) { - (*it)->destroy( bDeletePhysical ); - ++it; + rChild->destroy( bDeletePhysical ); } } diff --git a/ucb/source/ucp/hierarchy/hierarchycontent.cxx b/ucb/source/ucp/hierarchy/hierarchycontent.cxx index 954a89d7abe9..ec47a14f1f1c 100644 --- a/ucb/source/ucp/hierarchy/hierarchycontent.cxx +++ b/ucb/source/ucp/hierarchy/hierarchycontent.cxx @@ -741,12 +741,9 @@ void HierarchyContent::queryChildren( HierarchyContentRefVector& rChildren ) sal_Int32 nLen = aURL.getLength(); - ::ucbhelper::ContentRefList::const_iterator it = aAllContents.begin(); - ::ucbhelper::ContentRefList::const_iterator end = aAllContents.end(); - - while ( it != end ) + for ( const auto& rContent : aAllContents ) { - ::ucbhelper::ContentImplHelperRef xChild = (*it); + ::ucbhelper::ContentImplHelperRef xChild = rContent; OUString aChildURL = xChild->getIdentifier()->getContentIdentifier(); @@ -765,7 +762,6 @@ void HierarchyContent::queryChildren( HierarchyContentRefVector& rChildren ) static_cast< HierarchyContent * >( xChild.get() ) ); } } - ++it; } } @@ -812,11 +808,9 @@ bool HierarchyContent::exchangeIdentity( HierarchyContentRefVector aChildren; queryChildren( aChildren ); - HierarchyContentRefVector::const_iterator it = aChildren.begin(); - - while ( it != aChildren.end() ) + for ( const auto& rChild : aChildren ) { - HierarchyContentRef xChild = (*it); + HierarchyContentRef xChild = rChild; // Create new content identifier for the child... uno::Reference< ucb::XContentIdentifier > xOldChildId @@ -833,8 +827,6 @@ bool HierarchyContent::exchangeIdentity( if ( !xChild->exchangeIdentity( xNewChildId ) ) return false; - - ++it; } } return true; diff --git a/ucb/source/ucp/package/pkgcontent.cxx b/ucb/source/ucp/package/pkgcontent.cxx index 8158c13783ff..e428044625e8 100644 --- a/ucb/source/ucp/package/pkgcontent.cxx +++ b/ucb/source/ucp/package/pkgcontent.cxx @@ -1677,13 +1677,9 @@ void Content::destroy( ContentRefList aChildren; queryChildren( aChildren ); - ContentRefList::const_iterator it = aChildren.begin(); - ContentRefList::const_iterator end = aChildren.end(); - - while ( it != end ) + for ( auto& rChild : aChildren ) { - (*it)->destroy( bDeletePhysical, xEnv ); - ++it; + rChild->destroy( bDeletePhysical, xEnv ); } } } @@ -2003,12 +1999,9 @@ bool Content::exchangeIdentity( ContentRefList aChildren; queryChildren( aChildren ); - ContentRefList::const_iterator it = aChildren.begin(); - ContentRefList::const_iterator end = aChildren.end(); - - while ( it != end ) + for ( const auto& rChild : aChildren ) { - ContentRef xChild = (*it); + ContentRef xChild = rChild; // Create new content identifier for the child... uno::Reference< ucb::XContentIdentifier > xOldChildId @@ -2025,8 +2018,6 @@ bool Content::exchangeIdentity( if ( !xChild->exchangeIdentity( xNewChildId ) ) return false; - - ++it; } } return true; @@ -2056,12 +2047,9 @@ void Content::queryChildren( ContentRefList& rChildren ) sal_Int32 nLen = aURL.getLength(); - ::ucbhelper::ContentRefList::const_iterator it = aAllContents.begin(); - ::ucbhelper::ContentRefList::const_iterator end = aAllContents.end(); - - while ( it != end ) + for ( const auto& rContent : aAllContents ) { - ::ucbhelper::ContentImplHelperRef xChild = (*it); + ::ucbhelper::ContentImplHelperRef xChild = rContent; OUString aChildURL = xChild->getIdentifier()->getContentIdentifier(); @@ -2076,7 +2064,6 @@ void Content::queryChildren( ContentRefList& rChildren ) static_cast< Content * >( xChild.get() ) ); } } - ++it; } } diff --git a/ucb/source/ucp/tdoc/tdoc_content.cxx b/ucb/source/ucp/tdoc/tdoc_content.cxx index 50ff16e044f5..1cf7fbdaa222 100644 --- a/ucb/source/ucp/tdoc/tdoc_content.cxx +++ b/ucb/source/ucp/tdoc/tdoc_content.cxx @@ -724,12 +724,9 @@ void Content::queryChildren( ContentRefList& rChildren ) sal_Int32 nLen = aURL.getLength(); - ::ucbhelper::ContentRefList::const_iterator it = aAllContents.begin(); - ::ucbhelper::ContentRefList::const_iterator end = aAllContents.end(); - - while ( it != end ) + for ( const auto& rContent : aAllContents ) { - ::ucbhelper::ContentImplHelperRef xChild = (*it); + ::ucbhelper::ContentImplHelperRef xChild = rContent; OUString aChildURL = xChild->getIdentifier()->getContentIdentifier(); @@ -748,7 +745,6 @@ void Content::queryChildren( ContentRefList& rChildren ) static_cast< Content * >( xChild.get() ) ); } } - ++it; } } @@ -796,12 +792,9 @@ bool Content::exchangeIdentity( ContentRefList aChildren; queryChildren( aChildren ); - ContentRefList::const_iterator it = aChildren.begin(); - ContentRefList::const_iterator end = aChildren.end(); - - while ( it != end ) + for ( const auto& rChild : aChildren ) { - ContentRef xChild = (*it); + ContentRef xChild = rChild; // Create new content identifier for the child... uno::Reference< ucb::XContentIdentifier > xOldChildId @@ -818,8 +811,6 @@ bool Content::exchangeIdentity( if ( !xChild->exchangeIdentity( xNewChildId ) ) return false; - - ++it; } } return true; @@ -1701,13 +1692,9 @@ void Content::destroy( bool bDeletePhysical, ContentRefList aChildren; queryChildren( aChildren ); - ContentRefList::const_iterator it = aChildren.begin(); - ContentRefList::const_iterator end = aChildren.end(); - - while ( it != end ) + for ( auto& rChild : aChildren ) { - (*it)->destroy( bDeletePhysical, xEnv ); - ++it; + rChild->destroy( bDeletePhysical, xEnv ); } } } diff --git a/ucb/source/ucp/tdoc/tdoc_docmgr.cxx b/ucb/source/ucp/tdoc/tdoc_docmgr.cxx index 152e72d2b356..3de939721de9 100644 --- a/ucb/source/ucp/tdoc/tdoc_docmgr.cxx +++ b/ucb/source/ucp/tdoc/tdoc_docmgr.cxx @@ -181,17 +181,8 @@ void SAL_CALL OfficeDocumentsManager::documentEventOccured( { osl::MutexGuard aGuard( m_aMtx ); - DocumentList::const_iterator it = m_aDocs.begin(); - while ( it != m_aDocs.end() ) - { - if ( (*it).second.xModel == xModel ) - { - // already known. - found = true; - break; - } - ++it; - } + found = std::any_of(m_aDocs.begin(), m_aDocs.end(), + [&xModel](const DocumentList::value_type& rEntry) { return rEntry.second.xModel == xModel; }); } if (!found) @@ -257,15 +248,13 @@ void SAL_CALL OfficeDocumentsManager::documentEventOccured( { osl::MutexGuard aGuard( m_aMtx ); - for (auto it = m_aDocs.begin(); it != m_aDocs.end(); ++it) + auto it = std::find_if(m_aDocs.begin(), m_aDocs.end(), + [&xModel](const DocumentList::value_type& rEntry) { return rEntry.second.xModel == xModel; }); + if ( it != m_aDocs.end() ) { - if ( (*it).second.xModel == xModel ) - { - aDocId = (*it).first; - found = true; - m_aDocs.erase( it ); - break; - } + aDocId = (*it).first; + found = true; + m_aDocs.erase( it ); } } @@ -309,19 +298,15 @@ void SAL_CALL OfficeDocumentsManager::documentEventOccured( osl::MutexGuard aGuard( m_aMtx ); - DocumentList::iterator it = m_aDocs.begin(); - while ( it != m_aDocs.end() ) - { - if ( (*it).second.xModel == xModel ) - { - (*it).second.xStorage = xStorage; - break; - } - ++it; - } + DocumentList::iterator it = std::find_if(m_aDocs.begin(), m_aDocs.end(), + [&xModel](const DocumentList::value_type& rEntry) { return rEntry.second.xModel == xModel; }); OSL_ENSURE( it != m_aDocs.end(), "OnSaveDone event notified for unknown document!" ); + if ( it != m_aDocs.end() ) + { + (*it).second.xStorage = xStorage; + } } } else if ( Event.EventName == "OnSaveAsDone" ) @@ -345,22 +330,18 @@ void SAL_CALL OfficeDocumentsManager::documentEventOccured( osl::MutexGuard aGuard( m_aMtx ); - DocumentList::iterator it = m_aDocs.begin(); - while ( it != m_aDocs.end() ) - { - if ( (*it).second.xModel == xModel ) - { - (*it).second.xStorage = xStorage; - - // Adjust title. - (*it).second.aTitle = title; - break; - } - ++it; - } + DocumentList::iterator it = std::find_if(m_aDocs.begin(), m_aDocs.end(), + [&xModel](const DocumentList::value_type& rEntry) { return rEntry.second.xModel == xModel; }); OSL_ENSURE( it != m_aDocs.end(), "OnSaveAsDone event notified for unknown document!" ); + if ( it != m_aDocs.end() ) + { + (*it).second.xStorage = xStorage; + + // Adjust title. + (*it).second.aTitle = title; + } } } else if ( Event.EventName == "OnTitleChanged" @@ -387,18 +368,14 @@ void SAL_CALL OfficeDocumentsManager::documentEventOccured( osl::MutexGuard aGuard( m_aMtx ); - DocumentList::iterator it = m_aDocs.begin(); - while ( it != m_aDocs.end() ) + DocumentList::iterator it = std::find_if(m_aDocs.begin(), m_aDocs.end(), + [&xModel](const DocumentList::value_type& rEntry) { return rEntry.second.xModel == xModel; }); + if ( it != m_aDocs.end() ) { - if ( (*it).second.xModel == xModel ) - { - // Adjust title. - (*it).second.aTitle = aTitle; + // Adjust title. + (*it).second.aTitle = aTitle; - m_aDocs[ aDocId ] = StorageInfo( aTitle, xStorage, xModel ); - break; - } - ++it; + m_aDocs[ aDocId ] = StorageInfo( aTitle, xStorage, xModel ); } // OSL_ENSURE( it != m_aDocs.end(), @@ -450,17 +427,8 @@ void OfficeDocumentsManager::buildDocumentsList() { osl::MutexGuard aGuard( m_aMtx ); - DocumentList::const_iterator it = m_aDocs.begin(); - while ( it != m_aDocs.end() ) - { - if ( (*it).second.xModel == xModel ) - { - // already known. - found = true; - break; - } - ++it; - } + found = std::any_of(m_aDocs.begin(), m_aDocs.end(), + [&xModel](const DocumentList::value_type& rEntry) { return rEntry.second.xModel == xModel; }); } if (!found) diff --git a/ucb/source/ucp/tdoc/tdoc_provider.cxx b/ucb/source/ucp/tdoc/tdoc_provider.cxx index c73b99e804dd..fef2f3145f5e 100644 --- a/ucb/source/ucp/tdoc/tdoc_provider.cxx +++ b/ucb/source/ucp/tdoc/tdoc_provider.cxx @@ -231,17 +231,14 @@ void ContentProvider::notifyDocumentClosed( const OUString & rDocId ) ::ucbhelper::ContentRefList aAllContents; queryExistingContents( aAllContents ); - ::ucbhelper::ContentRefList::const_iterator it = aAllContents.begin(); - ::ucbhelper::ContentRefList::const_iterator end = aAllContents.end(); - // Notify all content objects related to the closed doc. bool bFoundDocumentContent = false; rtl::Reference< Content > xRoot; - while ( it != end ) + for ( const auto& rContent : aAllContents ) { - Uri aUri( (*it)->getIdentifier()->getContentIdentifier() ); + Uri aUri( rContent->getIdentifier()->getContentIdentifier() ); OSL_ENSURE( aUri.isValid(), "ContentProvider::notifyDocumentClosed - Invalid URI!" ); @@ -249,7 +246,7 @@ void ContentProvider::notifyDocumentClosed( const OUString & rDocId ) { if ( aUri.isRoot() ) { - xRoot = static_cast< Content * >( (*it).get() ); + xRoot = static_cast< Content * >( rContent.get() ); } else if ( aUri.isDocument() ) { @@ -268,12 +265,10 @@ void ContentProvider::notifyDocumentClosed( const OUString & rDocId ) { // Inform content. rtl::Reference< Content > xContent - = static_cast< Content * >( (*it).get() ); + = static_cast< Content * >( rContent.get() ); xContent->notifyDocumentClosed(); } - - ++it; } if ( xRoot.is() ) @@ -294,28 +289,23 @@ void ContentProvider::notifyDocumentOpened( const OUString & rDocId ) ::ucbhelper::ContentRefList aAllContents; queryExistingContents( aAllContents ); - ::ucbhelper::ContentRefList::const_iterator it = aAllContents.begin(); - ::ucbhelper::ContentRefList::const_iterator end = aAllContents.end(); - // Find root content. If instantiated let it propagate document insertion. - while ( it != end ) + for ( const auto& rContent : aAllContents ) { - Uri aUri( (*it)->getIdentifier()->getContentIdentifier() ); + Uri aUri( rContent->getIdentifier()->getContentIdentifier() ); OSL_ENSURE( aUri.isValid(), "ContentProvider::notifyDocumentOpened - Invalid URI!" ); if ( aUri.isRoot() ) { rtl::Reference< Content > xRoot - = static_cast< Content * >( (*it).get() ); + = static_cast< Content * >( rContent.get() ); xRoot->notifyChildInserted( rDocId ); // Done. break; } - - ++it; } } diff --git a/ucb/source/ucp/webdav-neon/ContentProperties.cxx b/ucb/source/ucp/webdav-neon/ContentProperties.cxx index 8f651edff0ab..2a9186b059cb 100644 --- a/ucb/source/ucp/webdav-neon/ContentProperties.cxx +++ b/ucb/source/ucp/webdav-neon/ContentProperties.cxx @@ -112,15 +112,9 @@ ContentProperties::ContentProperties( const DAVResource& rResource ) true ); } - std::vector< DAVPropertyValue >::const_iterator it - = rResource.properties.begin(); - std::vector< DAVPropertyValue >::const_iterator end - = rResource.properties.end(); - - while ( it != end ) + for ( const auto& rProp : rResource.properties ) { - addProperty( *it ); - ++it; + addProperty( rProp ); } if ( rResource.uri.endsWith("/") ) @@ -190,14 +184,13 @@ const PropertyValue * ContentProperties::get( if ( it == end ) { - it = m_xProps->begin(); - while ( it != end ) - { - if ( (*it).first.equalsIgnoreAsciiCase( rName ) ) - return &(*it).second; + it = std::find_if(m_xProps->cbegin(), end, + [&rName](const PropertyValueMap::value_type& rEntry) { + return rEntry.first.equalsIgnoreAsciiCase( rName ); + }); + if ( it != end ) + return &(*it).second; - ++it; - } return nullptr; } else @@ -355,13 +348,8 @@ void ContentProperties::addProperties( const std::vector< OUString > & rProps, const ContentProperties & rContentProps ) { - std::vector< OUString >::const_iterator it = rProps.begin(); - std::vector< OUString >::const_iterator end = rProps.end(); - - while ( it != end ) + for ( const OUString & rName : rProps ) { - const OUString & rName = (*it); - if ( !contains( rName ) ) // ignore duplicates { const PropertyValue * pProp = rContentProps.get( rName ); @@ -375,7 +363,6 @@ void ContentProperties::addProperties( addProperty( rName, uno::Any(), false ); } } - ++it; } } @@ -558,17 +545,12 @@ void CachableContentProperties::addProperties( { const std::unique_ptr< PropertyValueMap > & props = rProps.getProperties(); - PropertyValueMap::const_iterator it = props->begin(); - const PropertyValueMap::const_iterator end = props->end(); - - while ( it != end ) + for ( const auto& rProp : *props ) { - if ( isCachable( (*it).first, (*it).second.isCaseSensitive() ) ) - m_aProps.addProperty( (*it).first, - (*it).second.value(), - (*it).second.isCaseSensitive() ); - - ++it; + if ( isCachable( rProp.first, rProp.second.isCaseSensitive() ) ) + m_aProps.addProperty( rProp.first, + rProp.second.value(), + rProp.second.isCaseSensitive() ); } } @@ -576,15 +558,10 @@ void CachableContentProperties::addProperties( void CachableContentProperties::addProperties( const std::vector< DAVPropertyValue > & rProps ) { - std::vector< DAVPropertyValue >::const_iterator it = rProps.begin(); - const std::vector< DAVPropertyValue >::const_iterator end = rProps.end(); - - while ( it != end ) + for ( const auto& rProp : rProps ) { - if ( isCachable( (*it).Name, (*it).IsCaseSensitive ) ) - m_aProps.addProperty( *it ); - - ++it; + if ( isCachable( rProp.Name, rProp.IsCaseSensitive ) ) + m_aProps.addProperty( rProp ); } } diff --git a/ucb/source/ucp/webdav-neon/DAVResourceAccess.cxx b/ucb/source/ucp/webdav-neon/DAVResourceAccess.cxx index 47aad2a694a6..bf28bb1b0c41 100644 --- a/ucb/source/ucp/webdav-neon/DAVResourceAccess.cxx +++ b/ucb/source/ucp/webdav-neon/DAVResourceAccess.cxx @@ -1097,13 +1097,10 @@ void DAVResourceAccess::getUserRequestHeaders( // en.wikipedia.org:80 forces back 403 "Scripts should use an informative // User-Agent string with contact information, or they may be IP-blocked // without notice" otherwise: - for ( DAVRequestHeaders::iterator i(rRequestHeaders.begin()); - i != rRequestHeaders.end(); ++i ) + if ( std::any_of(rRequestHeaders.begin(), rRequestHeaders.end(), + [](const DAVRequestHeader& rHeader) { return rHeader.first.equalsIgnoreAsciiCase( "User-Agent" ); }) ) { - if ( i->first.equalsIgnoreAsciiCase( "User-Agent" ) ) - { - return; - } + return; } rRequestHeaders.emplace_back( "User-Agent", "LibreOffice" ); } @@ -1116,9 +1113,6 @@ bool DAVResourceAccess::detectRedirectCycle( NeonUri aUri( rRedirectURL ); - std::vector< NeonUri >::const_iterator it = m_aRedirectURIs.begin(); - std::vector< NeonUri >::const_iterator end = m_aRedirectURIs.end(); - // Check for maximum number of redirections // according to <https://tools.ietf.org/html/rfc7231#section-6.4>. // A pratical limit may be 5, due to earlier specifications: @@ -1128,16 +1122,10 @@ bool DAVResourceAccess::detectRedirectCycle( return true; // try to detect a cyclical redirection - while ( it != end ) - { - // if equal, cyclical redirection detected - if ( aUri == (*it) ) - return true; - - ++it; - } - - return false; + return std::any_of(m_aRedirectURIs.begin(), m_aRedirectURIs.end(), + [&aUri](const NeonUri& rUri) { + // if equal, cyclical redirection detected + return aUri == rUri; }); } diff --git a/ucb/source/ucp/webdav-neon/DAVSessionFactory.cxx b/ucb/source/ucp/webdav-neon/DAVSessionFactory.cxx index 060fcb8984d5..173a8445ccdb 100644 --- a/ucb/source/ucp/webdav-neon/DAVSessionFactory.cxx +++ b/ucb/source/ucp/webdav-neon/DAVSessionFactory.cxx @@ -52,18 +52,10 @@ rtl::Reference< DAVSession > DAVSessionFactory::createDAVSession( if (!m_xProxyDecider) m_xProxyDecider.reset( new ucbhelper::InternetProxyDecider( rxContext ) ); - Map::iterator aIt( m_aMap.begin() ); - Map::iterator aEnd( m_aMap.end() ); + Map::iterator aIt = std::find_if(m_aMap.begin(), m_aMap.end(), + [&inUri, &rFlags](const Map::value_type& rEntry) { return rEntry.second->CanUse( inUri, rFlags ); }); - while ( aIt != aEnd ) - { - if ( (*aIt).second->CanUse( inUri, rFlags ) ) - break; - - ++aIt; - } - - if ( aIt == aEnd ) + if ( aIt == m_aMap.end() ) { NeonUri aURI( inUri ); diff --git a/ucb/source/ucp/webdav-neon/NeonHeadRequest.cxx b/ucb/source/ucp/webdav-neon/NeonHeadRequest.cxx index 824622ec9746..f3759a5f0657 100644 --- a/ucb/source/ucp/webdav-neon/NeonHeadRequest.cxx +++ b/ucb/source/ucp/webdav-neon/NeonHeadRequest.cxx @@ -49,15 +49,9 @@ void process_headers( ne_request * req, { if( !rHeaderNames.empty() ) { - std::vector< OUString >::const_iterator it( - rHeaderNames.begin() ); - const std::vector< OUString >::const_iterator end( - rHeaderNames.end() ); - - while ( it != end ) + for ( const auto& rHeader : rHeaderNames ) { - SAL_INFO( "ucb.ucp.webdav", "HEAD - requested header: " << (*it) ); - ++it; + SAL_INFO( "ucb.ucp.webdav", "HEAD - requested header: " << rHeader ); } } } @@ -75,25 +69,17 @@ void process_headers( ne_request * req, if ( !bIncludeIt ) { // Check whether this header was requested. - std::vector< OUString >::const_iterator it( - rHeaderNames.begin() ); - const std::vector< OUString >::const_iterator end( - rHeaderNames.end() ); + auto it = std::find_if(rHeaderNames.begin(), rHeaderNames.end(), + [&aHeaderName](const OUString& rName) { + // header names are case insensitive + return rName.equalsIgnoreAsciiCase( aHeaderName ); + }); - while ( it != end ) + if ( it != rHeaderNames.end() ) { - // header names are case insensitive - if ( (*it).equalsIgnoreAsciiCase( aHeaderName ) ) - { - aHeaderName = (*it); - break; - } - - ++it; - } - - if ( it != end ) + aHeaderName = (*it); bIncludeIt = true; + } } if ( bIncludeIt ) diff --git a/ucb/source/ucp/webdav-neon/NeonLockStore.cxx b/ucb/source/ucp/webdav-neon/NeonLockStore.cxx index 062fb402b885..4543778fa81a 100644 --- a/ucb/source/ucp/webdav-neon/NeonLockStore.cxx +++ b/ucb/source/ucp/webdav-neon/NeonLockStore.cxx @@ -113,17 +113,13 @@ NeonLockStore::~NeonLockStore() // release active locks, if any. SAL_WARN_IF( !m_aLockInfoMap.empty(), "ucb.ucp.webdav", "NeonLockStore::~NeonLockStore - Releasing active locks!" ); - LockInfoMap::const_iterator it( m_aLockInfoMap.begin() ); - const LockInfoMap::const_iterator end( m_aLockInfoMap.end() ); - while ( it != end ) + for ( auto& rLockInfo : m_aLockInfoMap ) { - NeonLock * pLock = (*it).first; - (*it).second.xSession->UNLOCK( pLock ); + NeonLock * pLock = rLockInfo.first; + rLockInfo.second.xSession->UNLOCK( pLock ); ne_lockstore_remove( m_pNeonLockStore, pLock ); ne_lock_destroy( pLock ); - - ++it; } ne_lockstore_destroy( m_pNeonLockStore ); @@ -203,11 +199,9 @@ void NeonLockStore::refreshLocks() { osl::MutexGuard aGuard( m_aMutex ); - LockInfoMap::iterator it( m_aLockInfoMap.begin() ); - const LockInfoMap::const_iterator end( m_aLockInfoMap.end() ); - while ( it != end ) + for ( auto& rLockInfo : m_aLockInfoMap ) { - LockInfo & rInfo = (*it).second; + LockInfo & rInfo = rLockInfo.second; if ( rInfo.nLastChanceToSendRefreshRequest != -1 ) { // 30 seconds or less remaining until lock expires? @@ -219,7 +213,7 @@ void NeonLockStore::refreshLocks() // refresh the lock. sal_Int32 nlastChanceToSendRefreshRequest = -1; if ( rInfo.xSession->LOCK( - (*it).first, + rLockInfo.first, /* out param */ nlastChanceToSendRefreshRequest ) ) { rInfo.nLastChanceToSendRefreshRequest @@ -232,7 +226,6 @@ void NeonLockStore::refreshLocks() } } } - ++it; } } diff --git a/ucb/source/ucp/webdav-neon/NeonSession.cxx b/ucb/source/ucp/webdav-neon/NeonSession.cxx index 81fa6adca3ad..28ed1b17c43b 100644 --- a/ucb/source/ucp/webdav-neon/NeonSession.cxx +++ b/ucb/source/ucp/webdav-neon/NeonSession.cxx @@ -598,21 +598,16 @@ void NeonSession::PreSendRequest(ne_request* req, ne_buffer* headers) const DAVRequestHeaders & rHeaders = getRequestEnvironment().m_aRequestHeaders; - DAVRequestHeaders::const_iterator it1( rHeaders.begin() ); - const DAVRequestHeaders::const_iterator end1( rHeaders.end() ); - - while ( it1 != end1 ) + for ( const auto& rHeader : rHeaders ) { OString aHeader - = OUStringToOString( (*it1).first, + = OUStringToOString( rHeader.first, RTL_TEXTENCODING_UTF8 ); OString aValue - = OUStringToOString( (*it1).second, + = OUStringToOString( rHeader.second, RTL_TEXTENCODING_UTF8 ); ne_buffer_concat( headers, aHeader.getStr(), ": ", aValue.getStr(), EOL, nullptr ); - - ++it1; } } @@ -1025,10 +1020,9 @@ void NeonSession::PROPFIND( const OUString & inPath, #if defined SAL_LOG_INFO { //debug SAL_INFO( "ucb.ucp.webdav", "PROPFIND - relative URL: <" << inPath << "> Depth: " << inDepth ); - for(std::vector< OUString >::const_iterator it = inPropNames.begin(); - it < inPropNames.end(); ++it) + for(const auto& rPropName : inPropNames) { - SAL_INFO( "ucb.ucp.webdav", "PROPFIND - property requested: " << *it ); + SAL_INFO( "ucb.ucp.webdav", "PROPFIND - property requested: " << rPropName ); } } //debug #endif @@ -1067,13 +1061,11 @@ void NeonSession::PROPFIND( const OUString & inPath, #if defined SAL_LOG_INFO { //debug - for ( std::vector< DAVResourceInfo >::const_iterator itres = ioResInfo.begin(); - itres < ioResInfo.end(); ++itres) + for ( const auto& rResInfo : ioResInfo ) { - for ( std::vector< OUString >::const_iterator it = (*itres).properties.begin(); - it < (*itres).properties.end(); ++it) + for ( const auto& rProp : rResInfo.properties ) { - SAL_INFO( "ucb.ucp.webdav", "PROPFIND - returned property (name only): " << *it ); + SAL_INFO( "ucb.ucp.webdav", "PROPFIND - returned property (name only): " << rProp ); } } } //debug @@ -1812,17 +1804,12 @@ bool NeonSession::removeExpiredLocktoken( const OUString & inURL, if ( aResources.empty() ) return false; - std::vector< DAVPropertyValue >::const_iterator it - = aResources[ 0 ].properties.begin(); - std::vector< DAVPropertyValue >::const_iterator end - = aResources[ 0 ].properties.end(); - - while ( it != end ) + for ( const auto& rProp : aResources[ 0 ].properties ) { - if ( (*it).Name == DAVProperties::LOCKDISCOVERY ) + if ( rProp.Name == DAVProperties::LOCKDISCOVERY ) { uno::Sequence< ucb::Lock > aLocks; - if ( !( (*it).Value >>= aLocks ) ) + if ( !( rProp.Value >>= aLocks ) ) return false; if ( !containsLocktoken( aLocks, theLock->token ) ) @@ -1834,7 +1821,6 @@ bool NeonSession::removeExpiredLocktoken( const OUString & inURL, // still valid. return false; } - ++it; } // No lockdiscovery prop in propfind result / locktoken not found @@ -2051,24 +2037,16 @@ void runResponseHeaderHandler( void * userdata, if ( !bIncludeIt ) { // Check whether this header was requested. - std::vector< OUString >::const_iterator it( - pCtx->pHeaderNames->begin() ); - const std::vector< OUString >::const_iterator end( - pCtx->pHeaderNames->end() ); + auto it = std::find_if(pCtx->pHeaderNames->cbegin(), pCtx->pHeaderNames->cend(), + [&aHeaderName](const OUString& rName) { + // header names are case insensitive + return rName.equalsIgnoreAsciiCase( aHeaderName ); }); - while ( it != end ) + if ( it != pCtx->pHeaderNames->end() ) { - // header names are case insensitive - if ( (*it).equalsIgnoreAsciiCase( aHeaderName ) ) - { - aHeaderName = (*it); - break; - } - ++it; - } - - if ( it != end ) + aHeaderName = (*it); bIncludeIt = true; + } } if ( bIncludeIt ) diff --git a/ucb/source/ucp/webdav-neon/webdavcontent.cxx b/ucb/source/ucp/webdav-neon/webdavcontent.cxx index 39af4be04001..0c4267e9a728 100644 --- a/ucb/source/ucp/webdav-neon/webdavcontent.cxx +++ b/ucb/source/ucp/webdav-neon/webdavcontent.cxx @@ -110,21 +110,13 @@ namespace std::unique_ptr< ContentProperties > &xProps, const uno::Reference< ucb::XCommandEnvironment >& xEnv ) { - bool bIsRequestSize = false; DAVResource aResource; DAVRequestHeaders aPartialGet; aPartialGet.emplace_back( OUString( "Range" ), // see <https://tools.ietf.org/html/rfc7233#section-3.1> OUString( "bytes=0-0" ) ); - for ( std::vector< rtl::OUString >::const_iterator it = aHeaderNames.begin(); - it != aHeaderNames.end(); ++it ) - { - if ( *it == "Content-Length" ) - { - bIsRequestSize = true; - break; - } - } + bool bIsRequestSize = std::any_of(aHeaderNames.begin(), aHeaderNames.end(), + [](const rtl::OUString& rHeaderName) { return rHeaderName == "Content-Length"; }); if ( bIsRequestSize ) { @@ -145,15 +137,14 @@ namespace // Solution: if "Content-Range" is present, map it with UCB "Size" property rtl::OUString aAcceptRanges, aContentRange, aContentLength; std::vector< DAVPropertyValue > &aResponseProps = aResource.properties; - for ( std::vector< DAVPropertyValue >::const_iterator it = aResponseProps.begin(); - it != aResponseProps.end(); ++it ) + for ( const auto& rResponseProp : aResponseProps ) { - if ( it->Name == "Accept-Ranges" ) - it->Value >>= aAcceptRanges; - else if ( it->Name == "Content-Range" ) - it->Value >>= aContentRange; - else if ( it->Name == "Content-Length" ) - it->Value >>= aContentLength; + if ( rResponseProp.Name == "Accept-Ranges" ) + rResponseProp.Value >>= aAcceptRanges; + else if ( rResponseProp.Name == "Content-Range" ) + rResponseProp.Value >>= aContentRange; + else if ( rResponseProp.Name == "Content-Length" ) + rResponseProp.Value >>= aContentLength; } sal_Int64 nSize = 1; @@ -182,14 +173,11 @@ namespace // "*" means that the instance-length is unknown at the time when the response was generated if ( aSize != "*" ) { - for ( std::vector< DAVPropertyValue >::iterator it = aResponseProps.begin(); - it != aResponseProps.end(); ++it ) + auto it = std::find_if(aResponseProps.begin(), aResponseProps.end(), + [](const DAVPropertyValue& rProp) { return rProp.Name == "Content-Length"; }); + if (it != aResponseProps.end()) { - if (it->Name == "Content-Length") - { - it->Value <<= aSize; - break; - } + it->Value <<= aSize; } } } @@ -1251,19 +1239,14 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues( // Append all standard UCB, DAV and HTTP properties. const std::unique_ptr< PropertyValueMap > & xProps = rData.getProperties(); - PropertyValueMap::const_iterator it = xProps->begin(); - PropertyValueMap::const_iterator end = xProps->end(); - ContentProvider * pProvider = static_cast< ContentProvider * >( rProvider.get() ); beans::Property aProp; - while ( it != end ) + for ( const auto& rProp : *xProps ) { - pProvider->getProperty( (*it).first, aProp ); - xRow->appendObject( aProp, (*it).second.value() ); - - ++it; + pProvider->getProperty( rProp.first, aProp ); + xRow->appendObject( aProp, rProp.second.value() ); } // Append all local Additional Properties. @@ -1401,25 +1384,19 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues( { const OUString & rName = rProperties[ n ].Name; - std::vector< OUString >::const_iterator it - = m_aFailedPropNames.begin(); std::vector< OUString >::const_iterator end = m_aFailedPropNames.end(); - while ( it != end ) + auto it = std::find(m_aFailedPropNames.cbegin(), end, rName); + if ( it != end ) { - if ( *it == rName ) - { - // the failed property in cache is the same as the requested one, - // so add it to the requested properties list - aProperties[ nProps ] = rProperties[ n ]; - nProps++; - break; - } - - ++it; + // the failed property in cache is the same as the requested one, + // so add it to the requested properties list + aProperties[ nProps ] = rProperties[ n ]; + nProps++; } + // XXX something strange happens here: identical code for different conditions if ( it == end ) { aProperties[ nProps ] = rProperties[ n ]; @@ -1451,21 +1428,19 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues( #if defined SAL_LOG_INFO {//debug // print received resources - std::vector< DAVPropertyValue >::const_iterator it = resources[0].properties.begin(); - std::vector< DAVPropertyValue >::const_iterator end = resources[0].properties.end(); - while ( it != end ) + for ( const auto& rProp : resources[0].properties ) { OUString aPropValue; bool bValue; uno::Sequence< ucb::LockEntry > aSupportedLocks; - if( (*it).Value >>= aPropValue ) - SAL_INFO( "ucb.ucp.webdav", "PROPFIND (getPropertyValues) - returned property: " << (*it).Name << ":" << aPropValue ); - else if( (*it).Value >>= bValue ) - SAL_INFO( "ucb.ucp.webdav", "PROPFIND (getPropertyValues) - returned property: " << (*it).Name << ":" << + if( rProp.Value >>= aPropValue ) + SAL_INFO( "ucb.ucp.webdav", "PROPFIND (getPropertyValues) - returned property: " << rProp.Name << ":" << aPropValue ); + else if( rProp.Value >>= bValue ) + SAL_INFO( "ucb.ucp.webdav", "PROPFIND (getPropertyValues) - returned property: " << rProp.Name << ":" << ( bValue ? "true" : "false" ) ); - else if( (*it).Value >>= aSupportedLocks ) + else if( rProp.Value >>= aSupportedLocks ) { - SAL_INFO( "ucb.ucp.webdav", "PROPFIND (getPropertyValues) - returned property: " << (*it).Name << ":" ); + SAL_INFO( "ucb.ucp.webdav", "PROPFIND (getPropertyValues) - returned property: " << rProp.Name << ":" ); for ( sal_Int32 n = 0; n < aSupportedLocks.getLength(); ++n ) { SAL_INFO( "ucb.ucp.webdav"," scope: " @@ -1474,7 +1449,6 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues( << ( aSupportedLocks[ n ].Type != css::ucb::LockType_WRITE ? "" : "write" ) ); } } - ++it; } } #endif @@ -1676,31 +1650,30 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues( rProperties, aMissingProps ) ) { // - for ( std::vector< rtl::OUString >::const_iterator it = aMissingProps.begin(); - it != aMissingProps.end(); ++it ) + for ( const auto& rProp : aMissingProps ) { // For the time being only a couple of properties need to be added - if ( (*it) == "DateModified" || (*it) == "DateCreated" ) + if ( rProp == "DateModified" || rProp == "DateCreated" ) { util::DateTime aDate; xProps->addProperty( - (*it), + rProp, uno::makeAny( aDate ), true ); } // If WebDAV didn't return the resource type, assume default // This happens e.g. for lists exported by SharePoint - else if ( (*it) == "IsFolder" ) + else if ( rProp == "IsFolder" ) { xProps->addProperty( - (*it), + rProp, uno::makeAny( false ), true ); } - else if ( (*it) == "IsDocument" ) + else if ( rProp == "IsDocument" ) { xProps->addProperty( - (*it), + rProp, uno::makeAny( true ), true ); } @@ -2033,21 +2006,14 @@ uno::Sequence< uno::Any > Content::setPropertyValues( aStaticDAVOptionsCache.removeDAVOptions( xResAccess->getURL() ); xResAccess->PROPPATCH( aProppatchValues, xEnv ); - std::vector< ProppatchValue >::const_iterator it - = aProppatchValues.begin(); - std::vector< ProppatchValue >::const_iterator end - = aProppatchValues.end(); - - while ( it != end ) + for ( const auto& rProppatchValue : aProppatchValues ) { - aEvent.PropertyName = (*it).name; + aEvent.PropertyName = rProppatchValue.name; aEvent.OldValue = uno::Any(); // @@@ to expensive to obtain! - aEvent.NewValue = (*it).value; + aEvent.NewValue = rProppatchValue.value; aChanges.getArray()[ nChanged ] = aEvent; nChanged++; - - ++it; } } catch ( DAVException const & e ) @@ -2448,12 +2414,9 @@ void Content::queryChildren( ContentRefList& rChildren ) sal_Int32 nLen = aURL.getLength(); - ::ucbhelper::ContentRefList::const_iterator it = aAllContents.begin(); - ::ucbhelper::ContentRefList::const_iterator end = aAllContents.end(); - - while ( it != end ) + for ( const auto& rChild : aAllContents ) { - ::ucbhelper::ContentImplHelperRef xChild = (*it); + ::ucbhelper::ContentImplHelperRef xChild = rChild; OUString aChildURL = xChild->getIdentifier()->getContentIdentifier(); @@ -2473,7 +2436,6 @@ void Content::queryChildren( ContentRefList& rChildren ) xChild.get() ) ); } } - ++it; } } @@ -3007,13 +2969,9 @@ void Content::destroy( bool bDeletePhysical ) ::webdav_ucp::Content::ContentRefList aChildren; queryChildren( aChildren ); - ContentRefList::const_iterator it = aChildren.begin(); - ContentRefList::const_iterator end = aChildren.end(); - - while ( it != end ) + for ( auto& rChild : aChildren ) { - (*it)->destroy( bDeletePhysical ); - ++it; + rChild->destroy( bDeletePhysical ); } } @@ -3096,16 +3054,13 @@ Content::ResourceType Content::resourceTypeForLocks( // all returned properties are in // resources.properties[n].Name/.Value - std::vector< DAVPropertyValue >::iterator it; - - for ( it = resources[0].properties.begin(); - it != resources[0].properties.end(); ++it) + for ( const auto& rProp : resources[0].properties ) { - if ( (*it).Name == DAVProperties::SUPPORTEDLOCK ) + if ( rProp.Name == DAVProperties::SUPPORTEDLOCK ) { wasSupportedlockFound = true; uno::Sequence< ucb::LockEntry > aSupportedLocks; - if ( (*it).Value >>= aSupportedLocks ) + if ( rProp.Value >>= aSupportedLocks ) { for ( sal_Int32 n = 0; n < aSupportedLocks.getLength(); ++n ) { @@ -3503,12 +3458,9 @@ bool Content::exchangeIdentity( ContentRefList aChildren; queryChildren( aChildren ); - ContentRefList::const_iterator it = aChildren.begin(); - ContentRefList::const_iterator end = aChildren.end(); - - while ( it != end ) + for ( const auto& rChild : aChildren ) { - ContentRef xChild = (*it); + ContentRef xChild = rChild; // Create new content identifier for the child... uno::Reference< ucb::XContentIdentifier > @@ -3525,8 +3477,6 @@ bool Content::exchangeIdentity( if ( !xChild->exchangeIdentity( xNewChildId ) ) return false; - - ++it; } return true; } @@ -3830,21 +3780,19 @@ Content::ResourceType Content::getResourceType( #if defined SAL_LOG_INFO {//debug // print received resources - std::vector< DAVPropertyValue >::const_iterator it = resources[0].properties.begin(); - std::vector< DAVPropertyValue >::const_iterator end = resources[0].properties.end(); - while ( it != end ) + for ( const auto& rProp : resources[0].properties ) { OUString aPropValue; bool bValue; uno::Sequence< ucb::LockEntry > aSupportedLocks; - if((*it).Value >>= aPropValue ) - SAL_INFO( "ucb.ucp.webdav", "PROPFIND (getResourceType) - ret'd prop: " << (*it).Name << ":" << aPropValue ); - else if( (*it).Value >>= bValue ) - SAL_INFO( "ucb.ucp.webdav", "PROPFIND (getResourceType) - ret'd prop: " << (*it).Name << ":" << + if(rProp.Value >>= aPropValue ) + SAL_INFO( "ucb.ucp.webdav", "PROPFIND (getResourceType) - ret'd prop: " << rProp.Name << ":" << aPropValue ); + else if( rProp.Value >>= bValue ) + SAL_INFO( "ucb.ucp.webdav", "PROPFIND (getResourceType) - ret'd prop: " << rProp.Name << ":" << ( bValue ? "true" : "false" ) ); - else if( (*it).Value >>= aSupportedLocks ) + else if( rProp.Value >>= aSupportedLocks ) { - SAL_INFO( "ucb.ucp.webdav", "PROPFIND (getResourceType) - ret'd prop: " << (*it).Name << ":" ); + SAL_INFO( "ucb.ucp.webdav", "PROPFIND (getResourceType) - ret'd prop: " << rProp.Name << ":" ); for ( sal_Int32 n = 0; n < aSupportedLocks.getLength(); ++n ) { SAL_INFO( "ucb.ucp.webdav","PROPFIND (getResourceType) - supportedlock[" << n <<"]: scope: " @@ -3853,7 +3801,6 @@ Content::ResourceType Content::getResourceType( << ( aSupportedLocks[ n ].Type != css::ucb::LockType_WRITE ? "" : "write" ) ); } } - ++it; } } #endif diff --git a/ucb/source/ucp/webdav-neon/webdavcontentcaps.cxx b/ucb/source/ucp/webdav-neon/webdavcontentcaps.cxx index faf6c742ac3e..4d52efcf5e6b 100644 --- a/ucb/source/ucp/webdav-neon/webdavcontentcaps.cxx +++ b/ucb/source/ucp/webdav-neon/webdavcontentcaps.cxx @@ -310,8 +310,7 @@ uno::Sequence< beans::Property > Content::getProperties( xProvider.set( m_pProvider ); } - typedef std::set< OUString > StringSet; - StringSet aPropSet; + std::set< OUString > aPropSet; // No server access for just created (not yet committed) objects. // Only a minimal set of properties supported at this stage. @@ -374,71 +373,68 @@ uno::Sequence< beans::Property > Content::getProperties( bool bHasCreatableInfos = false; { - std::set< OUString >::const_iterator it = aPropSet.begin(); - std::set< OUString >::const_iterator end = aPropSet.end(); - while ( it != end ) + for ( const auto& rProp : aPropSet ) { if ( !bHasCreationDate && - ( (*it) == DAVProperties::CREATIONDATE ) ) + ( rProp == DAVProperties::CREATIONDATE ) ) { bHasCreationDate = true; } else if ( !bHasGetLastModified && - ( (*it) == DAVProperties::GETLASTMODIFIED ) ) + ( rProp == DAVProperties::GETLASTMODIFIED ) ) { bHasGetLastModified = true; } else if ( !bHasGetContentType && - ( (*it) == DAVProperties::GETCONTENTTYPE ) ) + ( rProp == DAVProperties::GETCONTENTTYPE ) ) { bHasGetContentType = true; } else if ( !bHasGetContentLength && - ( (*it) == DAVProperties::GETCONTENTLENGTH ) ) + ( rProp == DAVProperties::GETCONTENTLENGTH ) ) { bHasGetContentLength = true; } - else if ( !bHasContentType && (*it) == "ContentType" ) + else if ( !bHasContentType && rProp == "ContentType" ) { bHasContentType = true; } - else if ( !bHasIsDocument && (*it) == "IsDocument" ) + else if ( !bHasIsDocument && rProp == "IsDocument" ) { bHasIsDocument = true; } - else if ( !bHasIsFolder && (*it) == "IsFolder" ) + else if ( !bHasIsFolder && rProp == "IsFolder" ) { bHasIsFolder = true; } - else if ( !bHasTitle && (*it) == "Title" ) + else if ( !bHasTitle && rProp == "Title" ) { bHasTitle = true; } - else if ( !bHasBaseURI && (*it) == "BaseURI" ) + else if ( !bHasBaseURI && rProp == "BaseURI" ) { bHasBaseURI = true; } - else if ( !bHasDateCreated && (*it) == "DateCreated" ) + else if ( !bHasDateCreated && rProp == "DateCreated" ) { bHasDateCreated = true; } - else if ( !bHasDateModified && (*it) == "DateModified" ) + else if ( !bHasDateModified && rProp == "DateModified" ) { bHasDateModified = true; } - else if ( !bHasMediaType && (*it) == "MediaType" ) + else if ( !bHasMediaType && rProp == "MediaType" ) { bHasMediaType = true; } - else if ( !bHasSize && (*it) == "Size" ) + else if ( !bHasSize && rProp == "Size" ) { bHasSize = true; } - else if ( !bHasCreatableInfos && (*it) == "CreatableContentsInfo" ) + else if ( !bHasCreatableInfos && rProp == "CreatableContentsInfo" ) { bHasCreatableInfos = true; } - ++it; } } @@ -501,15 +497,10 @@ uno::Sequence< beans::Property > Content::getProperties( const std::unique_ptr< PropertyValueMap > & xProps = xCachedProps->getProperties(); - PropertyValueMap::const_iterator map_it = xProps->begin(); - const PropertyValueMap::const_iterator map_end = xProps->end(); - - while ( map_it != map_end ) + for ( const auto& rEntry : *xProps ) { - if ( aPropSet.find( (*map_it).first ) == set_end ) - aPropSet.insert( (*map_it).first ); - - ++map_it; + if ( aPropSet.find( rEntry.first ) == set_end ) + aPropSet.insert( rEntry.first ); } } @@ -517,13 +508,13 @@ uno::Sequence< beans::Property > Content::getProperties( sal_Int32 nCount = aPropSet.size(); uno::Sequence< beans::Property > aProperties( nCount ); - std::set< OUString >::const_iterator it = aPropSet.begin(); + sal_Int32 n = 0; beans::Property aProp; - for ( sal_Int32 n = 0; n < nCount; ++n, ++it ) + for ( const auto& rProp : aPropSet ) { - xProvider->getProperty( (*it), aProp ); - aProperties[ n ] = aProp; + xProvider->getProperty( rProp, aProp ); + aProperties[ n++ ] = aProp; } return aProperties; diff --git a/ucb/source/ucp/webdav-neon/webdavdatasupplier.cxx b/ucb/source/ucp/webdav-neon/webdavdatasupplier.cxx index c933929bc8c7..e5fe6403650d 100644 --- a/ucb/source/ucp/webdav-neon/webdavdatasupplier.cxx +++ b/ucb/source/ucp/webdav-neon/webdavdatasupplier.cxx @@ -343,20 +343,10 @@ bool DataSupplier::getData() // needed to get a valid ContentProperties::pIsFolder value, which // is needed for OpenMode handling. - std::vector< OUString >::const_iterator it - = propertyNames.begin(); - std::vector< OUString >::const_iterator end - = propertyNames.end(); + bool isNoResourceType = std::none_of(propertyNames.begin(), propertyNames.end(), + [](const OUString& rName) { return rName == DAVProperties::RESOURCETYPE; }); - while ( it != end ) - { - if ( (*it) == DAVProperties::RESOURCETYPE ) - break; - - ++it; - } - - if ( it == end ) + if ( isNoResourceType ) propertyNames.push_back( DAVProperties::RESOURCETYPE ); std::vector< DAVResource > resources; @@ -372,22 +362,16 @@ bool DataSupplier::getData() #if defined SAL_LOG_INFO { //print the resource for every URI returned - std::vector< DAVResource >::const_iterator it3 = resources.begin(); - std::vector< DAVResource >::const_iterator end3 = resources.end(); - while ( it3 != end3 ) + for ( const auto& rResource : resources ) { - NeonUri aCurrURI( (*it3).uri ); + NeonUri aCurrURI( rResource.uri ); OUString aCurrPath = aCurrURI.GetPath(); aCurrPath = NeonUri::unescape( aCurrPath ); - SAL_INFO( "ucb.ucp.webdav", "getData() - resource URL: <" << (*it3).uri << ">, unescaped to: <" << aCurrPath << "> )" ); - std::vector< DAVPropertyValue >::const_iterator it4 = (*it3).properties.begin(); - std::vector< DAVPropertyValue >::const_iterator end4 = (*it3).properties.end(); - while ( it4 != end4 ) + SAL_INFO( "ucb.ucp.webdav", "getData() - resource URL: <" << rResource.uri << ">, unescaped to: <" << aCurrPath << "> )" ); + for ( const auto& rProp : rResource.properties ) { - SAL_INFO( "ucb.ucp.webdav", "PROPFIND - property name: " << (*it4).Name ); - ++it4; + SAL_INFO( "ucb.ucp.webdav", "PROPFIND - property name: " << rProp.Name ); } - ++it3; } } #endif diff --git a/ucb/source/ucp/webdav/ContentProperties.cxx b/ucb/source/ucp/webdav/ContentProperties.cxx index 7fed92ffa48f..058b2a55c1c0 100644 --- a/ucb/source/ucp/webdav/ContentProperties.cxx +++ b/ucb/source/ucp/webdav/ContentProperties.cxx @@ -99,15 +99,9 @@ ContentProperties::ContentProperties( const DAVResource& rResource ) true ); } - std::vector< DAVPropertyValue >::const_iterator it - = rResource.properties.begin(); - std::vector< DAVPropertyValue >::const_iterator end - = rResource.properties.end(); - - while ( it != end ) + for ( const auto& rProp : rResource.properties ) { - addProperty( *it ); - ++it; + addProperty( rProp ); } if ( rResource.uri.endsWith("/") ) @@ -183,14 +177,13 @@ const PropertyValue * ContentProperties::get( if ( it == end ) { - it = m_xProps->begin(); - while ( it != end ) - { - if ( (*it).first.equalsIgnoreAsciiCase( rName ) ) - return &(*it).second; + it = std::find_if(m_xProps->cbegin(), end, + [&rName](const PropertyValueMap::value_type& rEntry) { + return rEntry.first.equalsIgnoreAsciiCase( rName ); + }); + if ( it != end ) + return &(*it).second; - ++it; - } return nullptr; } else @@ -359,13 +352,8 @@ void ContentProperties::addProperties( const std::vector< OUString > & rProps, const ContentProperties & rContentProps ) { - std::vector< OUString >::const_iterator it = rProps.begin(); - std::vector< OUString >::const_iterator end = rProps.end(); - - while ( it != end ) + for ( const OUString & rName : rProps ) { - const OUString & rName = (*it); - if ( !contains( rName ) ) // ignore duplicates { const PropertyValue * pProp = rContentProps.get( rName ); @@ -379,21 +367,16 @@ void ContentProperties::addProperties( addProperty( rName, uno::Any(), false ); } } - ++it; } } void ContentProperties::addProperties( const ContentProperties & rProps ) { - PropertyValueMap::const_iterator it = rProps.m_xProps->begin(); - const PropertyValueMap::const_iterator end = rProps.m_xProps->end(); - - while ( it != end ) + for ( const auto& rProp : *rProps.m_xProps ) { addProperty( - (*it).first, (*it).second.value(), (*it).second.isCaseSensitive() ); - ++it; + rProp.first, rProp.second.value(), rProp.second.isCaseSensitive() ); } } @@ -401,13 +384,9 @@ void ContentProperties::addProperties( const ContentProperties & rProps ) void ContentProperties::addProperties( const std::vector< DAVPropertyValue > & rProps ) { - std::vector< DAVPropertyValue >::const_iterator it = rProps.begin(); - const std::vector< DAVPropertyValue >::const_iterator end = rProps.end(); - - while ( it != end ) + for ( const auto& rProp : rProps ) { - addProperty( *it ); - ++it; + addProperty( rProp ); } } @@ -591,17 +570,12 @@ void CachableContentProperties::addProperties( { const std::unique_ptr< PropertyValueMap > & props = rProps.getProperties(); - PropertyValueMap::const_iterator it = props->begin(); - const PropertyValueMap::const_iterator end = props->end(); - - while ( it != end ) + for ( const auto& rProp : *props ) { - if ( isCachable( (*it).first, (*it).second.isCaseSensitive() ) ) - m_aProps.addProperty( (*it).first, - (*it).second.value(), - (*it).second.isCaseSensitive() ); - - ++it; + if ( isCachable( rProp.first, rProp.second.isCaseSensitive() ) ) + m_aProps.addProperty( rProp.first, + rProp.second.value(), + rProp.second.isCaseSensitive() ); } } @@ -609,16 +583,11 @@ void CachableContentProperties::addProperties( void CachableContentProperties::addProperties( const std::vector< DAVPropertyValue > & rProps ) { - std::vector< DAVPropertyValue >::const_iterator it = rProps.begin(); - const std::vector< DAVPropertyValue >::const_iterator end = rProps.end(); - - while ( it != end ) + for ( const auto& rProp : rProps ) { - if ( isCachable( (*it).Name, (*it).IsCaseSensitive ) ) - m_aProps.addProperty( *it ); - - ++it; - } + if ( isCachable( rProp.Name, rProp.IsCaseSensitive ) ) + m_aProps.addProperty( rProp ); + } } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/webdav/DAVResourceAccess.cxx b/ucb/source/ucp/webdav/DAVResourceAccess.cxx index eda8e0fcc8c3..2132cb095390 100644 --- a/ucb/source/ucp/webdav/DAVResourceAccess.cxx +++ b/ucb/source/ucp/webdav/DAVResourceAccess.cxx @@ -1059,18 +1059,8 @@ bool DAVResourceAccess::detectRedirectCycle( SerfUri aUri( rRedirectURL ); - std::vector< SerfUri >::const_iterator it = m_aRedirectURIs.begin(); - std::vector< SerfUri >::const_iterator end = m_aRedirectURIs.end(); - - while ( it != end ) - { - if ( aUri == (*it) ) - return true; - - ++it; - } - - return false; + return std::any_of(m_aRedirectURIs.begin(), m_aRedirectURIs.end(), + [&aUri](const SerfUri& rUri) { return aUri == rUri; }); } diff --git a/ucb/source/ucp/webdav/DAVSessionFactory.cxx b/ucb/source/ucp/webdav/DAVSessionFactory.cxx index 587c649545ec..a0f5df5a9ad2 100644 --- a/ucb/source/ucp/webdav/DAVSessionFactory.cxx +++ b/ucb/source/ucp/webdav/DAVSessionFactory.cxx @@ -39,18 +39,10 @@ rtl::Reference< DAVSession > DAVSessionFactory::createDAVSession( if ( !m_xProxyDecider.get() ) m_xProxyDecider.reset( new ucbhelper::InternetProxyDecider( rxContext ) ); - Map::iterator aIt( m_aMap.begin() ); - Map::iterator aEnd( m_aMap.end() ); + Map::iterator aIt = std::find_if(m_aMap.begin(), m_aMap.end(), + [&inUri](const Map::value_type& rEntry) { return rEntry.second->CanUse( inUri ); }); - while ( aIt != aEnd ) - { - if ( (*aIt).second->CanUse( inUri ) ) - break; - - ++aIt; - } - - if ( aIt == aEnd ) + if ( aIt == m_aMap.end() ) { SerfUri aURI( inUri ); diff --git a/ucb/source/ucp/webdav/SerfGetReqProcImpl.cxx b/ucb/source/ucp/webdav/SerfGetReqProcImpl.cxx index 17dcb24531b8..c06b94f16b50 100644 --- a/ucb/source/ucp/webdav/SerfGetReqProcImpl.cxx +++ b/ucb/source/ucp/webdav/SerfGetReqProcImpl.cxx @@ -151,22 +151,11 @@ void SerfGetReqProcImpl::processSingleResponseHeader( const char* inHeaderName, else { // store only header fields which are requested - std::vector< OUString >::const_iterator it( mpHeaderNames->begin() ); - const std::vector< OUString >::const_iterator end( mpHeaderNames->end() ); - - while ( it != end ) - { - // header names are case insensitive - if ( (*it).equalsIgnoreAsciiCase( aHeaderName ) ) - { - bStoreHeaderField = true; - break; - } - else - { - ++it; - } - } + bStoreHeaderField = std::any_of(mpHeaderNames->begin(), mpHeaderNames->end(), + [&aHeaderName](const OUString& rHeaderName) { + // header names are case insensitive + return rHeaderName.equalsIgnoreAsciiCase( aHeaderName ); + }); } if ( bStoreHeaderField ) diff --git a/ucb/source/ucp/webdav/SerfHeadReqProcImpl.cxx b/ucb/source/ucp/webdav/SerfHeadReqProcImpl.cxx index 984c78cc2b22..a771570dadc3 100644 --- a/ucb/source/ucp/webdav/SerfHeadReqProcImpl.cxx +++ b/ucb/source/ucp/webdav/SerfHeadReqProcImpl.cxx @@ -106,22 +106,11 @@ void SerfHeadReqProcImpl::processSingleResponseHeader( const char* inHeaderName, else { // store only header fields which are requested - std::vector< OUString >::const_iterator it( mpHeaderNames->begin() ); - const std::vector< OUString >::const_iterator end( mpHeaderNames->end() ); - - while ( it != end ) - { - // header names are case insensitive - if ( (*it).equalsIgnoreAsciiCase( aHeaderName ) ) - { - bStoreHeaderField = true; - break; - } - else - { - ++it; - } - } + bStoreHeaderField = std::any_of(mpHeaderNames->begin(), mpHeaderNames->end(), + [&aHeaderName](const OUString& rHeaderName) { + // header names are case insensitive + return rHeaderName.equalsIgnoreAsciiCase( aHeaderName ); + }); } if ( bStoreHeaderField ) diff --git a/ucb/source/ucp/webdav/SerfLockStore.cxx b/ucb/source/ucp/webdav/SerfLockStore.cxx index ec8da85476e5..ec2f6ae1bea7 100644 --- a/ucb/source/ucp/webdav/SerfLockStore.cxx +++ b/ucb/source/ucp/webdav/SerfLockStore.cxx @@ -92,12 +92,9 @@ SerfLockStore::~SerfLockStore() SAL_WARN_IF( !m_aLockInfoMap.empty(), "ucb.ucp.webdav", "SerfLockStore::~SerfLockStore - Releasing active locks!" ); - LockInfoMap::const_iterator it( m_aLockInfoMap.begin() ); - const LockInfoMap::const_iterator end( m_aLockInfoMap.end() ); - while ( it != end ) + for ( auto& rLockInfo : m_aLockInfoMap ) { - (*it).second.m_xSession->UNLOCK( (*it).first ); - ++it; + rLockInfo.second.m_xSession->UNLOCK( rLockInfo.first ); } } @@ -189,11 +186,9 @@ void SerfLockStore::refreshLocks() { osl::MutexGuard aGuard( m_aMutex ); - LockInfoMap::iterator it( m_aLockInfoMap.begin() ); - const LockInfoMap::const_iterator end( m_aLockInfoMap.end() ); - while ( it != end ) + for ( auto& rLockInfo : m_aLockInfoMap ) { - LockInfo & rInfo = (*it).second; + LockInfo & rInfo = rLockInfo.second; if ( rInfo.m_nLastChanceToSendRefreshRequest != -1 ) { // 30 seconds or less remaining until lock expires? @@ -205,7 +200,7 @@ void SerfLockStore::refreshLocks() // refresh the lock. sal_Int32 nlastChanceToSendRefreshRequest = -1; if ( rInfo.m_xSession->LOCK( - (*it).first, &nlastChanceToSendRefreshRequest ) ) + rLockInfo.first, &nlastChanceToSendRefreshRequest ) ) { rInfo.m_nLastChanceToSendRefreshRequest = nlastChanceToSendRefreshRequest; @@ -217,7 +212,6 @@ void SerfLockStore::refreshLocks() } } } - ++it; } } diff --git a/ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx b/ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx index 66e45efc6a52..dffd5e907e63 100644 --- a/ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx +++ b/ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx @@ -82,25 +82,19 @@ void SerfRequestProcessorImpl::handleChunkedEncoding ( void SerfRequestProcessorImpl::setRequestHeaders( serf_bucket_t* inoutSerfHeaderBucket ) { bool bHasUserAgent( false ); - DAVRequestHeaders::const_iterator aHeaderIter( mrRequestHeaders.begin() ); - const DAVRequestHeaders::const_iterator aEnd( mrRequestHeaders.end() ); - while ( aHeaderIter != aEnd ) + for ( const auto& rHeader : mrRequestHeaders ) { - const OString aHeader = OUStringToOString( (*aHeaderIter).first, - RTL_TEXTENCODING_UTF8 ); - const OString aValue = OUStringToOString( (*aHeaderIter).second, - RTL_TEXTENCODING_UTF8 ); + const OString aHeader = OUStringToOString( rHeader.first, RTL_TEXTENCODING_UTF8 ); + const OString aValue = OUStringToOString( rHeader.second, RTL_TEXTENCODING_UTF8 ); SAL_INFO("ucb.ucp.webdav", "Request Header - \"" << aHeader << ": " << aValue << "\""); if ( !bHasUserAgent ) - bHasUserAgent = aHeaderIter->first == "User-Agent"; + bHasUserAgent = rHeader.first == "User-Agent"; serf_bucket_headers_setc( inoutSerfHeaderBucket, aHeader.getStr(), aValue.getStr() ); - - ++aHeaderIter; } if ( !bHasUserAgent ) diff --git a/ucb/source/ucp/webdav/webdavcontent.cxx b/ucb/source/ucp/webdav/webdavcontent.cxx index 8fb3b7a52d79..a6e7087c26a2 100644 --- a/ucb/source/ucp/webdav/webdavcontent.cxx +++ b/ucb/source/ucp/webdav/webdavcontent.cxx @@ -96,7 +96,6 @@ void lcl_sendPartialGETRequest( bool &bError, std::unique_ptr< ContentProperties > &xProps, const uno::Reference< ucb::XCommandEnvironment >& xEnv ) { - bool bIsRequestSize = false; DAVResource aResource; DAVRequestHeaders aPartialGet; aPartialGet.push_back( @@ -104,15 +103,8 @@ void lcl_sendPartialGETRequest( bool &bError, OUString( "Range" ), OUString( "bytes=0-0" ))); - for ( std::vector< rtl::OUString >::const_iterator it = aHeaderNames.begin(); - it != aHeaderNames.end(); ++it ) - { - if ( *it == "Content-Length" ) - { - bIsRequestSize = true; - break; - } - } + bool bIsRequestSize = std::any_of(aHeaderNames.begin(), aHeaderNames.end(), + [](const rtl::OUString& rHeaderName) { return rHeaderName == "Content-Length"; }); if ( bIsRequestSize ) { @@ -136,15 +128,14 @@ void lcl_sendPartialGETRequest( bool &bError, // Solution: if "Content-Range" is present, map it with UCB "Size" property rtl::OUString aAcceptRanges, aContentRange, aContentLength; std::vector< DAVPropertyValue > &aResponseProps = aResource.properties; - for ( std::vector< DAVPropertyValue >::const_iterator it = aResponseProps.begin(); - it != aResponseProps.end(); ++it ) + for ( const auto& rResponseProp : aResponseProps ) { - if ( it->Name == "Accept-Ranges" ) - it->Value >>= aAcceptRanges; - else if ( it->Name == "Content-Range" ) - it->Value >>= aContentRange; - else if ( it->Name == "Content-Length" ) - it->Value >>= aContentLength; + if ( rResponseProp.Name == "Accept-Ranges" ) + rResponseProp.Value >>= aAcceptRanges; + else if ( rResponseProp.Name == "Content-Range" ) + rResponseProp.Value >>= aContentRange; + else if ( rResponseProp.Name == "Content-Length" ) + rResponseProp.Value >>= aContentLength; } sal_Int64 nSize = 1; @@ -170,14 +161,11 @@ void lcl_sendPartialGETRequest( bool &bError, // "*" means that the instance-length is unknown at the time when the response was generated if ( aSize != "*" ) { - for ( std::vector< DAVPropertyValue >::iterator it = aResponseProps.begin(); - it != aResponseProps.end(); ++it ) + auto it = std::find_if(aResponseProps.begin(), aResponseProps.end(), + [](const DAVPropertyValue& rProp) { return rProp.Name == "Content-Length"; }); + if (it != aResponseProps.end()) { - if (it->Name == "Content-Length") - { - it->Value <<= aSize; - break; - } + it->Value <<= aSize; } } } @@ -1230,19 +1218,14 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues( const std::unique_ptr< PropertyValueMap > & xProps = rData.getProperties(); - PropertyValueMap::const_iterator it = xProps->begin(); - PropertyValueMap::const_iterator end = xProps->end(); - ContentProvider * pProvider = static_cast< ContentProvider * >( rProvider.get() ); beans::Property aProp; - while ( it != end ) + for ( const auto& rProp : *xProps ) { - if ( pProvider->getProperty( (*it).first, aProp ) ) - xRow->appendObject( aProp, (*it).second.value() ); - - ++it; + if ( pProvider->getProperty( rProp.first, aProp ) ) + xRow->appendObject( aProp, rProp.second.value() ); } // Append all local Additional Properties. @@ -1342,20 +1325,8 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues( { const OUString & rName = rProperties[ n ].Name; - std::vector< OUString >::const_iterator it - = m_aFailedPropNames.begin(); - std::vector< OUString >::const_iterator end - = m_aFailedPropNames.end(); - - while ( it != end ) - { - if ( *it == rName ) - break; - - ++it; - } - - if ( it == end ) + if ( std::none_of(m_aFailedPropNames.begin(), m_aFailedPropNames.end(), + [&rName](const OUString& rPropName) { return rPropName == rName; }) ) { aProperties[ nProps ] = rProperties[ n ]; nProps++; @@ -1869,21 +1840,14 @@ uno::Sequence< uno::Any > Content::setPropertyValues( // Set property values at server. xResAccess->PROPPATCH( aProppatchValues, xEnv ); - std::vector< ProppatchValue >::const_iterator it - = aProppatchValues.begin(); - std::vector< ProppatchValue >::const_iterator end - = aProppatchValues.end(); - - while ( it != end ) + for ( const auto& rProppatchValue : aProppatchValues ) { - aEvent.PropertyName = (*it).name; + aEvent.PropertyName = rProppatchValue.name; aEvent.OldValue = uno::Any(); // @@@ to expensive to obtain! - aEvent.NewValue = (*it).value; + aEvent.NewValue = rProppatchValue.value; aChanges.getArray()[ nChanged ] = aEvent; nChanged++; - - ++it; } } catch ( DAVException const & e ) @@ -2271,12 +2235,9 @@ void Content::queryChildren( ContentRefList& rChildren ) sal_Int32 nLen = aURL.getLength(); - ::ucbhelper::ContentRefList::const_iterator it = aAllContents.begin(); - ::ucbhelper::ContentRefList::const_iterator end = aAllContents.end(); - - while ( it != end ) + for ( const auto& rChild : aAllContents ) { - ::ucbhelper::ContentImplHelperRef xChild = (*it); + ::ucbhelper::ContentImplHelperRef xChild = rChild; OUString aChildURL = xChild->getIdentifier()->getContentIdentifier(); @@ -2297,7 +2258,6 @@ void Content::queryChildren( ContentRefList& rChildren ) xChild.get() ) ) ); } } - ++it; } } @@ -2812,13 +2772,9 @@ void Content::destroy( bool bDeletePhysical ) ::http_dav_ucp::Content::ContentRefList aChildren; queryChildren( aChildren ); - ContentRefList::const_iterator it = aChildren.begin(); - ContentRefList::const_iterator end = aChildren.end(); - - while ( it != end ) + for ( auto& rChild : aChildren ) { - (*it)->destroy( bDeletePhysical ); - ++it; + rChild->destroy( bDeletePhysical ); } } @@ -2947,12 +2903,9 @@ bool Content::exchangeIdentity( ContentRefList aChildren; queryChildren( aChildren ); - ContentRefList::const_iterator it = aChildren.begin(); - ContentRefList::const_iterator end = aChildren.end(); - - while ( it != end ) + for ( const auto& rChild : aChildren ) { - ContentRef xChild = (*it); + ContentRef xChild = rChild; // Create new content identifier for the child... uno::Reference< ucb::XContentIdentifier > @@ -2969,8 +2922,6 @@ bool Content::exchangeIdentity( if ( !xChild->exchangeIdentity( xNewChildId ) ) return false; - - ++it; } return true; } diff --git a/ucb/source/ucp/webdav/webdavcontentcaps.cxx b/ucb/source/ucp/webdav/webdavcontentcaps.cxx index 87d2aaf2ec4d..485be38470cf 100644 --- a/ucb/source/ucp/webdav/webdavcontentcaps.cxx +++ b/ucb/source/ucp/webdav/webdavcontentcaps.cxx @@ -284,7 +284,7 @@ uno::Sequence< beans::Property > Content::getProperties( } typedef std::set< OUString > StringSet; - StringSet aPropSet; + std::set< OUString > aPropSet; // No server access for just created (not yet committed) objects. // Only a minimal set of properties supported at this stage. @@ -324,71 +324,68 @@ uno::Sequence< beans::Property > Content::getProperties( bool bHasCreatableInfos = false; { - std::set< OUString >::const_iterator it = aPropSet.begin(); - std::set< OUString >::const_iterator end = aPropSet.end(); - while ( it != end ) + for ( const auto& rProp : aPropSet ) { if ( !bHasCreationDate && - ( (*it) == DAVProperties::CREATIONDATE ) ) + ( rProp == DAVProperties::CREATIONDATE ) ) { bHasCreationDate = true; } else if ( !bHasGetLastModified && - ( (*it) == DAVProperties::GETLASTMODIFIED ) ) + ( rProp == DAVProperties::GETLASTMODIFIED ) ) { bHasGetLastModified = true; } else if ( !bHasGetContentType && - ( (*it) == DAVProperties::GETCONTENTTYPE ) ) + ( rProp == DAVProperties::GETCONTENTTYPE ) ) { bHasGetContentType = true; } else if ( !bHasGetContentLength && - ( (*it) == DAVProperties::GETCONTENTLENGTH ) ) + ( rProp == DAVProperties::GETCONTENTLENGTH ) ) { bHasGetContentLength = true; } - else if ( !bHasContentType && (*it) == "ContentType" ) + else if ( !bHasContentType && rProp == "ContentType" ) { bHasContentType = true; } - else if ( !bHasIsDocument && (*it) == "IsDocument" ) + else if ( !bHasIsDocument && rProp == "IsDocument" ) { bHasIsDocument = true; } - else if ( !bHasIsFolder && (*it) == "IsFolder" ) + else if ( !bHasIsFolder && rProp == "IsFolder" ) { bHasIsFolder = true; } - else if ( !bHasTitle && (*it) == "Title" ) + else if ( !bHasTitle && rProp == "Title" ) { bHasTitle = true; } - else if ( !bHasBaseURI && (*it) == "BaseURI" ) + else if ( !bHasBaseURI && rProp == "BaseURI" ) { bHasBaseURI = true; } - else if ( !bHasDateCreated && (*it) == "DateCreated" ) + else if ( !bHasDateCreated && rProp == "DateCreated" ) { bHasDateCreated = true; } - else if ( !bHasDateModified && (*it) == "DateModified" ) + else if ( !bHasDateModified && rProp == "DateModified" ) { bHasDateModified = true; } - else if ( !bHasMediaType && (*it) == "MediaType" ) + else if ( !bHasMediaType && rProp == "MediaType" ) { bHasMediaType = true; } - else if ( !bHasSize && (*it) == "Size" ) + else if ( !bHasSize && rProp == "Size" ) { bHasSize = true; } - else if ( !bHasCreatableInfos && (*it) == "CreatableContentsInfo" ) + else if ( !bHasCreatableInfos && rProp == "CreatableContentsInfo" ) { bHasCreatableInfos = true; } - ++it; } } @@ -451,15 +448,10 @@ uno::Sequence< beans::Property > Content::getProperties( const std::unique_ptr< PropertyValueMap > & xProps = xCachedProps->getProperties(); - PropertyValueMap::const_iterator map_it = xProps->begin(); - const PropertyValueMap::const_iterator map_end = xProps->end(); - - while ( map_it != map_end ) + for ( const auto& rEntry : *xProps ) { - if ( aPropSet.find( (*map_it).first ) == set_end ) - aPropSet.insert( (*map_it).first ); - - ++map_it; + if ( aPropSet.find( rEntry.first ) == set_end ) + aPropSet.insert( rEntry.first ); } } @@ -467,13 +459,13 @@ uno::Sequence< beans::Property > Content::getProperties( sal_Int32 nCount = aPropSet.size(); uno::Sequence< beans::Property > aProperties( nCount ); - std::set< OUString >::const_iterator it = aPropSet.begin(); beans::Property aProp; + sal_Int32 n = 0; - for ( sal_Int32 n = 0; n < nCount; ++n, ++it ) + for ( const auto& rProp : aPropSet ) { - xProvider->getProperty( (*it), aProp ); - aProperties[ n ] = aProp; + xProvider->getProperty( rProp, aProp ); + aProperties[ n++ ] = aProp; } return aProperties; diff --git a/ucb/source/ucp/webdav/webdavdatasupplier.cxx b/ucb/source/ucp/webdav/webdavdatasupplier.cxx index e9c07a10e423..d3e6b936faa7 100644 --- a/ucb/source/ucp/webdav/webdavdatasupplier.cxx +++ b/ucb/source/ucp/webdav/webdavdatasupplier.cxx @@ -88,13 +88,9 @@ struct DataSupplier_Impl DataSupplier_Impl::~DataSupplier_Impl() { - ResultList::const_iterator it = m_aResults.begin(); - ResultList::const_iterator end = m_aResults.end(); - - while ( it != end ) + for ( auto& rResultPtr : m_aResults ) { - delete *it; - ++it; + delete rResultPtr; } } @@ -341,20 +337,10 @@ bool DataSupplier::getData() // needed to get a valid ContentProperties::pIsFolder value, which // is needed for OpenMode handling. - std::vector< OUString >::const_iterator it - = propertyNames.begin(); - std::vector< OUString >::const_iterator end - = propertyNames.end(); - - while ( it != end ) - { - if ( (*it).equals( DAVProperties::RESOURCETYPE ) ) - break; - - ++it; - } + bool isNoResourceType = std::none_of(propertyNames.begin(), propertyNames.end(), + [](const OUString& rPropName) { return rPropName.equals(DAVProperties::RESOURCETYPE); }); - if ( it == end ) + if ( isNoResourceType ) propertyNames.push_back( DAVProperties::RESOURCETYPE ); std::vector< DAVResource > resources; |