Changeset 3055 for source/ariba/overlay/BaseOverlay.cpp
- Timestamp:
- Apr 23, 2009, 5:55:59 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
source/ariba/overlay/BaseOverlay.cpp
r3041 r3055 40 40 41 41 #include "ariba/utility/misc/OvlVis.h" 42 using ariba::utility::OvlVis; 42 #include "ariba/NodeListener.h" 43 #include "ariba/CommunicationListener.h" 43 44 44 45 namespace ariba { … … 146 147 147 148 // inform all registered services of the event 148 BOOST_FOREACH( ServiceInterface* i, listenerMux.getOneList()){149 BOOST_FOREACH( NodeListener* i, nodeListeners ){ 149 150 if( ret ) i->onLeaveSuccess( spovnetId ); 150 151 else i->onLeaveFail( spovnetId ); … … 176 177 177 178 overlayInterface->joinOverlay(); 178 BOOST_FOREACH( ServiceInterface* i, listenerMux.getOneList()){179 BOOST_FOREACH( NodeListener* i, nodeListeners ){ 179 180 i->onJoinSuccess( spovnetId ); 180 181 } … … 221 222 const LinkID BaseOverlay::establishLink(const EndpointDescriptor& ep, const ServiceID& service){ 222 223 223 if( ! listenerMux.contains( service ) ){224 if( !communicationListeners.contains( service ) ){ 224 225 logging_error( "no registered listener on serviceid " << service.toString() ); 225 226 return LinkID::UNSPECIFIED; 226 227 } 227 228 228 ServiceInterface* receiver = listenerMux.get( service );229 CommunicationListener* receiver = communicationListeners.get( service ); 229 230 const LinkID link = bc->establishLink( ep ); 230 231 … … 308 309 } 309 310 310 bool BaseOverlay::bind(ServiceInterface* service, const ServiceID& sid) { 311 312 logging_debug( "binding service " << service << " on serviceid " << sid.toString() ); 313 314 if( listenerMux.contains( sid ) ){ 315 logging_error( "some service already registered for service id " << sid.toString() ); 311 void BaseOverlay::bind(CommunicationListener* listener, const ServiceID& sid){ 312 logging_debug( "binding communication listener " << listener 313 << " on serviceid " << sid.toString() ); 314 315 if( communicationListeners.contains( sid ) ){ 316 logging_error( "some listener already registered for service id " 317 << sid.toString() ); 316 318 return false; 317 319 } 318 320 319 listenerMux.registerItem( service, sid );321 communicationListeners.registerItem( listener, sid ); 320 322 return true; 321 323 } 322 324 323 ServiceInterface* BaseOverlay::unbind(const ServiceID& sid){ 324 325 logging_debug( "unbinding service from serviceid " << sid.toString() ); 326 327 if( !listenerMux.contains( sid ) ){ 328 logging_warn( "cannot unbind service. no service registered on service id " << sid.toString() ); 329 return NULL; 330 } 331 332 ServiceInterface* iface = listenerMux.get( sid ); 333 listenerMux.unregisterItem( sid ); 334 335 return NULL; //iface; 325 void BaseOverlay::unbind(CommunicationListener* listener, const ServiceID& sid){ 326 logging_debug( "unbinding listener " << listener 327 << " from serviceid " << sid.toString() ); 328 329 if( !communicationListeners.contains( sid ) ){ 330 logging_warn( "cannot unbind listener. no listener registered on service id " << sid.toString() ); 331 return; 332 } 333 334 if( communicationListeners.get(sid) != listener ){ 335 logging_warn( "listener bound to service id " << sid.toString() 336 << " is different than listener trying to unbind" ); 337 return; 338 } 339 340 communicationListeners.unregisterItem( sid ); 341 } 342 343 void BaseOverlay::bind(NodeListener* listener){ 344 logging_debug( "binding node listener " << listener ); 345 346 NodeListenerVector::iterator i = nodeListeners.find( listener ); 347 if( i != nodeListeners.end() ){ 348 logging_warn( "node listener " << listener << " is already bound, cannot bind" ); 349 return; 350 } 351 352 nodeListeners.push_back( listener ); 353 } 354 355 void BaseOverlay::unbind(NodeListener* listener){ 356 logging_debug( "unbinding node listener " << listener ); 357 358 NodeListenerVector::iterator i = nodeListeners.find( listener ); 359 if( i == nodeListeners.end() ){ 360 logging_warn( "node listener " << listener << " is not bound, cannot unbind" ); 361 return; 362 } 363 364 nodeListeners.erase( i ); 336 365 } 337 366 … … 501 530 502 531 const ServiceID& service = overlayMsg->getService(); 503 ServiceInterface* serviceListener = listenerMux.get( service );532 CommunicationListener* serviceListener = communicationListeners.get( service ); 504 533 505 534 logging_debug( "received data for service " << service.toString() ); … … 544 573 bool allow = true; 545 574 546 BOOST_FOREACH( ServiceInterface* i, listenerMux.getOneList()){575 BOOST_FOREACH( NodeListener* i, nodeListeners ){ 547 576 allow &= i->isJoinAllowed( overlayMsg->getSourceNode(), spovnetId ); 548 577 } … … 615 644 616 645 // inform all registered services of the event 617 BOOST_FOREACH( ServiceInterface* i, listenerMux.getOneList() ){646 BOOST_FOREACH( NodeListener* i, nodeListeners{ 618 647 i->onJoinFail( spovnetId ); 619 648 } … … 640 669 641 670 // inform all registered services of the event 642 BOOST_FOREACH( ServiceInterface* i, listenerMux.getOneList()){671 BOOST_FOREACH( NodeListener* i, nodeListeners ){ 643 672 i->onJoinFail( spovnetId ); 644 673 } … … 662 691 663 692 // inform all registered services of the event 664 BOOST_FOREACH( ServiceInterface* i, listenerMux.getOneList()){693 BOOST_FOREACH( NodeListener* i, nodeListeners ){ 665 694 i->onJoinSuccess( spovnetId ); 666 695 } … … 717 746 // 718 747 719 if( ! listenerMux.contains( service ) ){748 if( !communicationListeners.contains( service ) ){ 720 749 logging_warn( "linkup event for service that has not been registered" ); 721 750 return false; 722 751 } 723 752 724 ServiceInterface* iface = listenerMux.get( service );753 CommunicationListener* iface = communicationListeners.get( service ); 725 754 if( iface == NULL ){ 726 755 logging_warn( "linkup event for service that has been registered with a NULL interface" ); … … 762 791 763 792 // inform all registered services of the event 764 BOOST_FOREACH( ServiceInterface* i, listenerMux.getOneList()){793 BOOST_FOREACH( NodeListener* i, nodeListeners ){ 765 794 i->onLeaveFail( spovnetId ); 766 795 } … … 774 803 775 804 // inform all registered services of the event 776 BOOST_FOREACH( ServiceInterface* i, listenerMux.getOneList()){805 BOOST_FOREACH( NodeListener* i, nodeListeners ){ 777 806 i->onNodeLeave( overlayMsg->getSourceNode(), spovnetId ); 778 807 } … … 879 908 << node.toString() ); 880 909 881 BOOST_FOREACH( ServiceInterface* i, listenerMux.getOneList()){910 BOOST_FOREACH( NodeListener* i, nodeListeners ){ 882 911 i->onNodeJoin( node, spovnetId ); 883 912 }
Note:
See TracChangeset
for help on using the changeset viewer.