Ignore:
Timestamp:
Apr 22, 2009, 9:07:53 PM (15 years ago)
Author:
Christoph Mayer
Message:

-jede Menge fixes und Umstellungen
-angefangen ariba/interface los zu werden, erste dateien sind weg

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/ariba/overlay/BaseOverlay.cpp

    r2803 r3037  
    107107
    108108        logging_info( "leaving spovnet " << spovnetId );
     109        bool ret = ( state != this->BaseOverlayStateInvalid );
    109110
    110111        logging_debug( "dropping all auto-links ..." );
    111        
     112
    112113        BOOST_FOREACH( LinkPair item, linkMapping ){
    113                 if( item.second.autolink ) 
     114                if( item.second.autolink )
    114115                        dropLink( item.first );
    115116        }
     
    135136        // inform all registered services of the event
    136137        BOOST_FOREACH( ServiceInterface* i, listenerMux.getOneList() ){
    137                 i->onOverlayDestroy( spovnetId );
     138                if( ret ) i->onLeaveSuccess( spovnetId );
     139                else      i->onLeaveFail( spovnetId );
    138140        }
    139141}
     
    159161
    160162        //
    161         // create the overlay
    162         //
    163 
    164         overlayInterface->createOverlay();
    165         BOOST_FOREACH( ServiceInterface* i, listenerMux.getOneList() ){
    166                 i->onOverlayCreate( spovnetId );
    167         }
    168 
    169         //
    170163        // bootstrap against ourselfs
    171164        //
     
    286279                                node.toString() << " for service " << service.toString() <<
    287280                                ". creating auto link ...");
    288                
     281
    289282                const LinkID link = establishLink( node, service );
    290283                LinkMapping::iterator i = linkMapping.find( link );
     
    328321        ServiceInterface* iface = listenerMux.get( sid );
    329322        listenerMux.unregisterItem( sid );
    330        
     323
    331324        return NULL; //iface;
    332325}
     
    385378                                " on link " << id.toString() );
    386379
    387                 OverlayMsg overMsg( 
    388                         OverlayMsg::OverlayMessageTypeUpdate, 
    389                         i->second.service, 
    390                         nodeId 
     380                OverlayMsg overMsg(
     381                        OverlayMsg::OverlayMessageTypeUpdate,
     382                        i->second.service,
     383                        nodeId
    391384                        );
    392385
     
    655648
    656649                overlayInterface->createOverlay();
    657 
    658                 // inform all registered services of the event
    659                 BOOST_FOREACH( ServiceInterface* i, listenerMux.getOneList() ){
    660                         i->onOverlayCreate( spovnetId );
    661                 }
    662 
    663650                overlayInterface->joinOverlay( replyMsg->getBootstrapEndpoint() );
    664651
     
    765752                        // inform all registered services of the event
    766753                        BOOST_FOREACH( ServiceInterface* i, listenerMux.getOneList() ){
    767                                 i->onOverlayDestroy( spovnetId );
     754                                i->onLeaveFail( spovnetId );
    768755                        }
    769756
     
    815802                sendMessage( message, *i, service ); // TODO: sollte auto links aufbauen fÃŒr sowas
    816803        }
     804}
     805
     806vector<NodeID> BaseOverlay::getOverlayNeighbors() const {
     807        // the known nodes _can_ also include our
     808        // node, so we remove ourselfs
     809
     810        vector<NodeID> nodes = overlayInterface->getKnownNodes();
     811        vector<NodeID>::iterator i = find( nodes.begin(), nodes.end(), this->nodeId );
     812        if( i != nodes.end() ) nodes.erase( i );
     813
     814        return nodes;
    817815}
    818816
Note: See TracChangeset for help on using the changeset viewer.