From c322882fb6f850c771de14f047d6bb820359db2c Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Tue, 23 Feb 2016 15:07:09 +0100 Subject: Replace nested pairs with struct Change-Id: I95513accce789110fa987b9bf9ca94762fbeb646 --- connectivity/source/drivers/hsqldb/HStorageMap.cxx | 38 ++++++++++------------ .../source/drivers/hsqldb/StorageFileAccess.cxx | 20 ++++++------ connectivity/source/inc/hsqldb/HStorageMap.hxx | 9 +++-- 3 files changed, 34 insertions(+), 33 deletions(-) (limited to 'connectivity') diff --git a/connectivity/source/drivers/hsqldb/HStorageMap.cxx b/connectivity/source/drivers/hsqldb/HStorageMap.cxx index cf6ad3ff12a0..afd97ed77eae 100644 --- a/connectivity/source/drivers/hsqldb/HStorageMap.cxx +++ b/connectivity/source/drivers/hsqldb/HStorageMap.cxx @@ -170,13 +170,12 @@ namespace connectivity // check if the storage is already in our map TStorages::iterator aFind = ::std::find_if(rMap.begin(),rMap.end(), [&_xStorage] (const TStorages::value_type& storage) { - // TStoragePair (second) -> TStorageURLPair (first) -> uno::Reference (first) - return storage.second.first.first == _xStorage; + return storage.second.storage == _xStorage; }); if ( aFind == rMap.end() ) { - aFind = rMap.insert(TStorages::value_type(lcl_getNextCount(),TStorages::mapped_type(TStorageURLPair(_xStorage,_sURL),TStreamMap()))).first; + aFind = rMap.insert(TStorages::value_type(lcl_getNextCount(), {_xStorage, _sURL, TStreamMap()})).first; } return aFind->first; @@ -202,8 +201,7 @@ namespace connectivity // check if the storage is already in our map TStorages::iterator aFind = ::std::find_if(rMap.begin(),rMap.end(), [&_xStorage] (const TStorages::value_type& storage) { - // TStoragePair (second) -> TStorageURLPair (first) -> uno::Reference (first) - return storage.second.first.first == _xStorage; + return storage.second.storage == _xStorage; }); if ( aFind != rMap.end() ) @@ -221,10 +219,10 @@ namespace connectivity { if ( _xListener.is() ) { - Reference xBroad(aFind->second.first.first,UNO_QUERY); + Reference xBroad(aFind->second.storage,UNO_QUERY); if ( xBroad.is() ) xBroad->removeTransactionListener(_xListener); - Reference xTrans(aFind->second.first.first,UNO_QUERY); + Reference xTrans(aFind->second.storage,UNO_QUERY); if ( xTrans.is() ) xTrans->commit(); } @@ -246,14 +244,14 @@ namespace connectivity if ( aFind != rMap.end() ) { TStorages::mapped_type aStoragePair = StorageContainer::getRegisteredStorage(sKey); - OSL_ENSURE(aStoragePair.first.first.is(),"No Storage available!"); - if ( aStoragePair.first.first.is() ) + OSL_ENSURE(aStoragePair.storage.is(),"No Storage available!"); + if ( aStoragePair.storage.is() ) { OUString sOrgName = StorageContainer::jstring2ustring(env,name); - OUString sName = removeURLPrefix(sOrgName,aStoragePair.first.second); - TStreamMap::iterator aStreamFind = aFind->second.second.find(sName); - OSL_ENSURE( aStreamFind == aFind->second.second.end(),"A Stream was already registered for this object!"); - if ( aStreamFind != aFind->second.second.end() ) + OUString sName = removeURLPrefix(sOrgName,aStoragePair.url); + TStreamMap::iterator aStreamFind = aFind->second.streams.find(sName); + OSL_ENSURE( aStreamFind == aFind->second.streams.end(),"A Stream was already registered for this object!"); + if ( aStreamFind != aFind->second.streams.end() ) { pHelper = aStreamFind->second; } @@ -263,7 +261,7 @@ namespace connectivity { try { - pHelper.reset(new StreamHelper(aStoragePair.first.first->openStreamElement(sName,_nMode))); + pHelper.reset(new StreamHelper(aStoragePair.storage->openStreamElement(sName,_nMode))); } catch(const Exception&) { @@ -274,7 +272,7 @@ namespace connectivity bool bIsStream = true; try { - bIsStream = aStoragePair.first.first->isStreamElement(sStrippedName); + bIsStream = aStoragePair.storage->isStreamElement(sStrippedName); } catch(const Exception&) { @@ -283,9 +281,9 @@ namespace connectivity if ( !bIsStream ) return pHelper; // readonly file without data stream } - pHelper.reset( new StreamHelper(aStoragePair.first.first->openStreamElement( sStrippedName, _nMode ) ) ); + pHelper.reset( new StreamHelper(aStoragePair.storage->openStreamElement( sStrippedName, _nMode ) ) ); } - aFind->second.second.insert(TStreamMap::value_type(sName,pHelper)); + aFind->second.streams.insert(TStreamMap::value_type(sName,pHelper)); } catch(const Exception& e) { @@ -313,7 +311,7 @@ namespace connectivity TStorages::iterator aFind = rMap.find(jstring2ustring(env,key)); OSL_ENSURE(aFind != rMap.end(),"Storage could not be found in list!"); if ( aFind != rMap.end() ) - aFind->second.second.erase(removeURLPrefix(jstring2ustring(env,name),aFind->second.first.second)); + aFind->second.streams.erase(removeURLPrefix(jstring2ustring(env,name),aFind->second.url)); } TStreamMap::mapped_type StorageContainer::getRegisteredStream( JNIEnv * env,jstring name, jstring key) @@ -324,8 +322,8 @@ namespace connectivity OSL_ENSURE(aFind != rMap.end(),"Storage could not be found in list!"); if ( aFind != rMap.end() ) { - TStreamMap::iterator aStreamFind = aFind->second.second.find(removeURLPrefix(jstring2ustring(env,name),aFind->second.first.second)); - if ( aStreamFind != aFind->second.second.end() ) + TStreamMap::iterator aStreamFind = aFind->second.streams.find(removeURLPrefix(jstring2ustring(env,name),aFind->second.url)); + if ( aStreamFind != aFind->second.streams.end() ) pRet = aStreamFind->second; } diff --git a/connectivity/source/drivers/hsqldb/StorageFileAccess.cxx b/connectivity/source/drivers/hsqldb/StorageFileAccess.cxx index 498b39935bfb..8937898a71bb 100644 --- a/connectivity/source/drivers/hsqldb/StorageFileAccess.cxx +++ b/connectivity/source/drivers/hsqldb/StorageFileAccess.cxx @@ -43,7 +43,7 @@ extern "C" SAL_JNI_EXPORT jboolean JNICALL Java_com_sun_star_sdbcx_comp_hsqldb_S (JNIEnv * env, jobject /*obj_this*/,jstring key, jstring name) { TStorages::mapped_type aStoragePair = StorageContainer::getRegisteredStorage(StorageContainer::jstring2ustring(env,key)); - if ( aStoragePair.first.first.is() ) + if ( aStoragePair.storage.is() ) { try { @@ -51,11 +51,11 @@ extern "C" SAL_JNI_EXPORT jboolean JNICALL Java_com_sun_star_sdbcx_comp_hsqldb_S try { OUString sOldName = StorageContainer::removeOldURLPrefix(sName); - if ( aStoragePair.first.first->isStreamElement(sOldName) ) + if ( aStoragePair.storage->isStreamElement(sOldName) ) { try { - aStoragePair.first.first->renameElement(sOldName,StorageContainer::removeURLPrefix(sName,aStoragePair.first.second)); + aStoragePair.storage->renameElement(sOldName,StorageContainer::removeURLPrefix(sName,aStoragePair.url)); } catch(const Exception&) { @@ -68,7 +68,7 @@ extern "C" SAL_JNI_EXPORT jboolean JNICALL Java_com_sun_star_sdbcx_comp_hsqldb_S catch(const IllegalArgumentException&) { } - return aStoragePair.first.first->isStreamElement(StorageContainer::removeURLPrefix(sName,aStoragePair.first.second)); + return aStoragePair.storage->isStreamElement(StorageContainer::removeURLPrefix(sName,aStoragePair.url)); } catch(const NoSuchElementException&) { @@ -101,11 +101,11 @@ extern "C" SAL_JNI_EXPORT void JNICALL Java_com_sun_star_sdbcx_comp_hsqldb_Stora } #endif TStorages::mapped_type aStoragePair = StorageContainer::getRegisteredStorage(StorageContainer::jstring2ustring(env,key)); - if ( aStoragePair.first.first.is() ) + if ( aStoragePair.storage.is() ) { try { - aStoragePair.first.first->removeElement(StorageContainer::removeURLPrefix(StorageContainer::jstring2ustring(env,name),aStoragePair.first.second)); + aStoragePair.storage->removeElement(StorageContainer::removeURLPrefix(StorageContainer::jstring2ustring(env,name),aStoragePair.url)); } catch(const NoSuchElementException&) { @@ -137,13 +137,13 @@ extern "C" SAL_JNI_EXPORT void JNICALL Java_com_sun_star_sdbcx_comp_hsqldb_Stora } #endif TStorages::mapped_type aStoragePair = StorageContainer::getRegisteredStorage(StorageContainer::jstring2ustring(env,key)); - if ( aStoragePair.first.first.is() ) + if ( aStoragePair.storage.is() ) { try { - aStoragePair.first.first->renameElement( - StorageContainer::removeURLPrefix(StorageContainer::jstring2ustring(env,oldname),aStoragePair.first.second), - StorageContainer::removeURLPrefix(StorageContainer::jstring2ustring(env,newname),aStoragePair.first.second) + aStoragePair.storage->renameElement( + StorageContainer::removeURLPrefix(StorageContainer::jstring2ustring(env,oldname),aStoragePair.url), + StorageContainer::removeURLPrefix(StorageContainer::jstring2ustring(env,newname),aStoragePair.url) ); #ifdef HSQLDB_DBG { diff --git a/connectivity/source/inc/hsqldb/HStorageMap.hxx b/connectivity/source/inc/hsqldb/HStorageMap.hxx index 01975b69696d..1150be49a580 100644 --- a/connectivity/source/inc/hsqldb/HStorageMap.hxx +++ b/connectivity/source/inc/hsqldb/HStorageMap.hxx @@ -54,9 +54,12 @@ namespace connectivity typedef std::map< OUString, std::shared_ptr > TStreamMap; - typedef ::std::pair< ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >, OUString > TStorageURLPair; - typedef ::std::pair< TStorageURLPair, TStreamMap> TStoragePair; - typedef std::map TStorages; + struct StorageData { + css::uno::Reference storage; + OUString url; + TStreamMap streams; + }; + typedef std::map TStorages; /** contains all storages so far accessed. */ class StorageContainer -- cgit