Changeset 7532 for source/ariba/Node.cpp


Ignore:
Timestamp:
Feb 4, 2010, 5:29:37 PM (15 years ago)
Author:
Christoph Mayer
Message:

-von außen konfigurierbare bootstrap module, -periodicbroadcast crash fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/ariba/Node.cpp

    r7469 r7532  
    6161        nodeId = generateNodeId(name);
    6262
    63         const communication::EndpointDescriptor* ep =
    64                         ariba_mod.getBootstrapNode(vnetname);
    65 
    6663        // start base comm if not started
    6764        if( !ariba_mod.base_comm->isStarted() )
     
    7471        base_overlay->joinSpoVNet( spovnetId );
    7572
    76         // join against further nodes
    77         if( ep != NULL && ep->isUnspecified() == false )
    78                 base_overlay->joinSpoVNet( spovnetId, *ep);
     73        // join against static bootstrap points and
     74        // start automatic bootstrapping modules
     75        vector<AribaModule::BootstrapMechanism> mechanisms
     76                = ariba_mod.getBootstrapMechanisms(vnetname);
     77
     78        vector<pair<BootstrapManager::BootstrapType,string> > internalmodules;
     79
     80        BOOST_FOREACH(AribaModule::BootstrapMechanism m, mechanisms){
     81                switch(m){
     82                        case AribaModule::BootstrapMechanismStatic:
     83                        {
     84                                const communication::EndpointDescriptor* ep =
     85                                                        ariba_mod.getBootstrapNode(vnetname, m);
     86                                        if( ep != NULL && ep->isUnspecified() == false )
     87                                                base_overlay->joinSpoVNet( spovnetId, *ep);
     88                                break;
     89                        }
     90                        case AribaModule::BootstrapMechanismBroadcast:
     91                                internalmodules.push_back(make_pair(
     92                                                BootstrapManager::BootstrapTypePeriodicBroadcast,
     93                                                ariba_mod.getBootstrapInfo(vnetname, m)));
     94                                break;
     95                        case AribaModule::BootstrapMechanismMulticastDNS:
     96                                internalmodules.push_back(make_pair(
     97                                                BootstrapManager::BootstrapTypeMulticastDns,
     98                                                ariba_mod.getBootstrapInfo(vnetname, m)));
     99                                break;
     100                        case AribaModule::BootstrapMechanismSDP:
     101                                internalmodules.push_back(make_pair(
     102                                                BootstrapManager::BootstrapTypeBluetoothSdp,
     103                                                ariba_mod.getBootstrapInfo(vnetname, m)));
     104                                break;
     105                        default:
     106                                break;
     107                }
     108        }
     109
     110        // start automatic overlay bootstrapping modules
     111        base_overlay->startBootstrapModules(internalmodules);
     112
     113        // done
    79114}
    80115
     
    101136
    102137void Node::leave() {
     138        base_overlay->stopBootstrapModules();
    103139        base_overlay->leaveSpoVNet();
    104140        ariba_mod.base_comm->stop();
Note: See TracChangeset for help on using the changeset viewer.