int DisturbanceStorage:: applyAllConnectionChangesToMultiConnection(const fromToNode_t& multi) { int nbrChanges = 0; pair<nodesInMultiMap_t::iterator, nodesInMultiMap_t::iterator> range = m_nodesInMulti.equal_range(multi); // Copy the old connectiondata. RoutingNode* fromNode = m_map->getNodeFromTrueNodeNumber(multi.first); RoutingNode* toNode = m_map->getNodeFromTrueNodeNumber(multi.second); RoutingConnection* conn = fromNode->getConnection(toNode, true); RoutingConnectionData oldData( *conn->getData() ); for( nodesInMultiMap_t::iterator it = range.first; it != range.second; ++it ) { // Find change changedNodes_t::const_iterator change = m_changedNodes.find(it->second); // Apply change change->second.applyDiff(m_map, fromNode, conn, &(it->second)); ++nbrChanges; } if ( nbrChanges != 0 ) { // Save the old connection data RoutingMapConnChanges diff(fromNode, toNode, oldData, *conn->getData(), true); m_changedNodes.insert( make_pair( fromToNode_t(fromNode->getItemID(), toNode->getItemID()), diff )); } mc2dbg << "[DS]: " << nbrChanges << " applied" << endl; return nbrChanges; }