Ignore:
Timestamp:
May 26, 2009, 4:27:55 PM (16 years ago)
Author:
Christoph Mayer
Message:

-einige fixed bzgl. link management, fehlerhafte serialisierer, etc.

Location:
source/ariba/overlay/modules/onehop
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • source/ariba/overlay/modules/onehop/OneHop.cpp

    r3690 r3705  
    5959        //
    6060        overlayNodes.insert( make_pair(_nodeid, LinkID::UNSPECIFIED) );
     61
     62        Timer::setInterval(5000);
     63        Timer::start();
    6164}
    6265
    6366OneHop::~OneHop(){
     67        Timer::stop();
    6468        deleteOverlay();
    6569}
     
    155159
    156160        //
    157         // close all links, this will indicate the other nodes that we left
     161        // send leave messages to all nodes. the nodes
     162        // will then drop the links
    158163        //
    159164
     
    162167
    163168        for( ; i != iend; i++){
    164                 if( i->first != nodeid && i->second != LinkID::UNSPECIFIED )
    165                         baseoverlay.dropLink( i->second );
     169                if( i->first != nodeid && i->second != LinkID::UNSPECIFIED ){
     170
     171                        OneHopMessage msg (OneHopMessage::OneHopMessageTypeLeave);
     172                        baseoverlay.sendMessage( &msg, i->second );
     173                }
    166174        }
    167175
     
    177185
    178186        // node went down, remove from overlay mapping
    179         logging_debug( "node " << remote.toString() << " left overlay structure" );
     187        logging_debug( "link " << lnk.toString() << " to node " << remote.toString() << " went down, removing node" );
    180188
    181189        OverlayNodeMapping::iterator i = overlayNodes.begin();
     
    266274                eventsReceiver->onNodeJoin( remote );
    267275
    268         } // if( request != NULL )
     276        } // OneHopMessageTypeListingRequest
    269277
    270278        //
     
    312320                } // for( ; i != iend; i++ )
    313321
    314         } // if( reply != NULL )
     322        } // OneHopMessageTypeListingReply
     323
     324        //
     325        // handle node leaves
     326        //
     327
     328        if( onemsg->isType(OneHopMessage::OneHopMessageTypeLeave) ){
     329
     330                logging_debug("received leave message from " <<
     331                                remote.toString() << " on link " << lnk.toString());
     332
     333                // drop the link to the node
     334                baseoverlay.dropLink( lnk );
     335
     336        } // OneHopMessageTypeLeave
     337
     338        //
     339        // handle kbr route messages
     340        //
    315341
    316342        if( onemsg->isType( OneHopMessage::OneHopMessageTypeRoute) ){
    317343                logging_debug( "Route message arrived at destination node -> delegate to BaseOverlay" );
    318344                baseoverlay.incomingRouteMessage( onemsg );
    319         }
    320 
     345        } // OneHopMessageTypeRoute
     346
     347}
     348
     349void OneHop::eventFunction(){
     350
     351        logging_debug("<<<<<<<<<<<<<<<<onehop-table<<<<<<<<<<<<<<<<<<<");
     352
     353                OverlayNodeMapping::iterator i = overlayNodes.begin();
     354                OverlayNodeMapping::iterator iend = overlayNodes.end();
     355
     356                for( ; i != iend; i++ ){
     357
     358                        const NodeID node = i->first;
     359                        const LinkID link = i->second;
     360                        const EndpointDescriptor& endpoint = baseoverlay.getEndpointDescriptor( link );
     361
     362                        logging_debug(  "node: " << node.toString() <<
     363                                                        ", link_: " << link.toString() << ", endp: " << endpoint.toString());
     364                }
     365
     366        logging_debug(">>>>>>>>>>>>>>>>>onehop-table>>>>>>>>>>>>>>>>>>>>>");
    321367
    322368}
  • source/ariba/overlay/modules/onehop/OneHop.h

    r3690 r3705  
    4343#include "ariba/overlay/modules/OverlayInterface.h"
    4444#include "ariba/utility/logging/Logging.h"
     45#include "ariba/utility/system/Timer.h"
    4546
    4647using std::map;
     48using ariba::utility::Timer;
    4749
    4850namespace ariba {
    4951namespace overlay {
    5052
    51 class OneHop: public OverlayInterface {
     53class OneHop : public OverlayInterface, protected Timer {
    5254        use_logging_h( OneHop );
    5355public:
     
    5860
    5961protected:
     62
     63        /// @see Timer.h
     64        virtual void eventFunction();
     65
    6066        /// @see OverlayInterface.h
    6167        virtual void createOverlay();
  • source/ariba/overlay/modules/onehop/messages/OneHopMessage.h

    r3690 r3705  
    5757                OneHopMessageTypeListingRequest = 1,
    5858                OneHopMessageTypeListingReply   = 2,
    59                 OneHopMessageTypeRoute          = 3,
     59                OneHopMessageTypeLeave          = 3,
     60                OneHopMessageTypeRoute          = 4,
    6061        } OneHopMessageType;
    6162
Note: See TracChangeset for help on using the changeset viewer.