Changeset 3055
- Timestamp:
- Apr 23, 2009, 5:55:59 PM (15 years ago)
- Files:
-
- 3 deleted
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
sample/pingpong/PingPong.cpp
r3041 r3055 133 133 // node listener interface 134 134 void PingPong::onJoinCompleted( const SpoVNetID& vid ) { 135 logging_ error( "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXpingpong node join completed, spovnetid=" << vid.toString() );135 logging_info( "pingpong node join completed, spovnetid=" << vid.toString() ); 136 136 137 137 // start the timer to ping every second … … 140 140 141 141 void PingPong::onJoinFailed( const SpoVNetID& vid ) { 142 logging_error(" pingpong node join failed, spovnetid=" << vid.toString() );142 logging_error("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX pingpong node join failed, spovnetid=" << vid.toString() ); 143 143 } 144 144 -
source/ariba/AribaModule.h
r3041 r3055 84 84 * 85 85 * @author Sebastian Mies <mies@tm.uka.de> 86 * @author Christoph Mayer <mayer@tm.uka.de> 86 87 */ 87 88 class AribaModule: public Module { … … 129 130 * bootstrap.file = used file for bootstrap information 130 131 */ 131 void initialize(); ///< @see Module.h132 void start(); ///< @see Module.h133 void stop(); ///< @see Module.h134 string getName() const; ///< @see Module.h132 void initialize(); ///< @see Module.h 133 void start(); ///< @see Module.h 134 void stop(); ///< @see Module.h 135 string getName() const; ///< @see Module.h 135 136 void setProperty(string key, string value); ///< @see Module.h 136 137 const string getProperty(string key) const; ///< @see Module.h -
source/ariba/CommunicationListener.cpp
r2460 r3055 41 41 namespace ariba { 42 42 43 // dummy44 43 CommunicationListener::CommunicationListener() { 45 44 } 46 45 47 // dummy48 46 CommunicationListener::~CommunicationListener() { 49 47 } 50 48 51 // dummy52 49 void CommunicationListener::onLinkUp(const LinkID& l, const NodeID& r) { 53 50 } 54 51 55 // dummy56 52 void CommunicationListener::onLinkDown(const LinkID& l, const NodeID& r) { 57 53 } 58 54 59 // dummy60 55 void CommunicationListener::onLinkChanged(const LinkID& l, const NodeID& r) { 61 56 } 62 57 63 // dummy64 58 void CommunicationListener::onLinkFail(const LinkID& l, const NodeID& r) { 65 59 } 66 60 67 // dummy68 61 void CommunicationListener::onLinkQoSChanged(const LinkID& l, const NodeID& r, 69 62 const LinkProperties& p) { 70 63 } 71 64 72 // dummy73 65 bool CommunicationListener::onLinkRequest(const NodeID& remote, 74 66 const DataMessage& msg) { … … 76 68 } 77 69 78 // dummy79 70 void CommunicationListener::onMessage(const DataMessage& msg, 80 71 const NodeID& remote, const LinkID& lnk) { 81 72 } 82 73 83 // dummy 84 void CommunicationListener::onMessageSent(seqnum_t seq_num, bool failed, 85 const DataMessage& msg) { 86 } 74 // void CommunicationListener::onMessageSent(seqnum_t seq_num, bool failed, 75 // const DataMessage& msg) { 76 // } 87 77 88 78 } // namespace ariba -
source/ariba/CommunicationListener.h
r2460 r3055 43 43 // forward declaration 44 44 class CommunicationListener; 45 class ServiceInterfaceWrapper;46 45 } 47 46 … … 54 53 55 54 /** 56 * 55 * Listener for communication events on links. 57 56 */ 58 57 class CommunicationListener { 59 58 friend class Node; 60 friend class ServiceInterfaceWrapper;61 59 protected: 62 60 CommunicationListener(); … … 76 74 const LinkProperties& prop); 77 75 78 // --- service specific events ---79 80 76 virtual bool onLinkRequest(const NodeID& remote, const DataMessage& msg); 81 77 … … 85 81 const LinkID& lnk = LinkID::UNSPECIFIED); 86 82 87 virtual void onMessageSent(seqnum_t seq_num, bool failed, 88 const DataMessage& msg = DataMessage::UNSPECIFIED); 83 // --- extended message functionality --- 84 // virtual void onMessageSent(seqnum_t seq_num, bool failed, 85 // const DataMessage& msg = DataMessage::UNSPECIFIED); 89 86 90 87 // --- dht functionality --- -
source/ariba/Identifiers.h
r2409 r3055 40 40 #define IDENTIFIERS_H_ 41 41 42 //#include "ariba.h"43 44 // TODO: implement via variable integers to support different node id sizes!!45 //#include "ariba/utility/vtypes/vint.hpp"46 47 // hack48 42 #include "ariba/utility/types/NodeID.h" 49 43 #include "ariba/utility/types/ServiceID.h" … … 53 47 namespace ariba { 54 48 55 // TODO: implement via variable integers to support different node id sizes!!56 //typedef vint<32> LinkID;57 //typedef vint<32> ServiceID;58 //typedef vint<> NodeID;59 //typedef vint<> SpoVNetID;60 61 // hack: for now, use old identifiers62 49 typedef utility::NodeID NodeID; 63 50 typedef utility::LinkID LinkID; -
source/ariba/Makefile.am
r3041 r3055 253 253 communication/networkinfo/NetworkInformation.h 254 254 255 #------------> interface256 257 libariba_la_SOURCES += \258 interface/ServiceInterface.cpp259 260 nobase_libariba_la_HEADERS += \261 interface/ServiceInterface.h262 263 255 #------------> overlay 264 256 265 257 libariba_la_SOURCES += \ 266 overlay/BaseOverlay.cpp \ 267 overlay/OverlayEvents.cpp 268 269 nobase_libariba_la_HEADERS += \ 270 overlay/BaseOverlay.h \ 271 overlay/OverlayEvents.h 258 overlay/BaseOverlay.cpp 259 260 nobase_libariba_la_HEADERS += \ 261 overlay/BaseOverlay.h 272 262 273 263 #------------> overlay :: messages -
source/ariba/Node.cpp
r3041 r3055 41 41 #include "ariba/overlay/BaseOverlay.h" 42 42 #include "ariba/utility/types/OverlayParameterSet.h" 43 #include "ariba/interface/ServiceInterface.h"44 43 #include "ariba/communication/EndpointDescriptor.h" 45 44 … … 47 46 48 47 namespace ariba { 49 50 class ServiceInterfaceWrapper: public interface::ServiceInterface {51 private:52 NodeListener* nodeListener;53 CommunicationListener* commListener;54 public:55 ServiceInterfaceWrapper(NodeListener* listener) :56 nodeListener(listener), commListener(NULL) {57 58 }59 60 ServiceInterfaceWrapper(CommunicationListener* listener) :61 nodeListener(NULL), commListener(listener) {62 }63 64 ~ServiceInterfaceWrapper() {65 }66 67 protected:68 69 bool isJoinAllowed(const NodeID& nodeid, const SpoVNetID& spovnetid) {70 return true;71 }72 73 void onNodeJoin(const NodeID& nodeid, const SpoVNetID& spovnetid) {74 // not handled75 }76 77 void onNodeLeave(const NodeID& id, const SpoVNetID& spovnetid) {78 // not handled79 }80 81 void onJoinSuccess(const SpoVNetID& spovnetid) {82 if (nodeListener != NULL) nodeListener->onJoinCompleted(spovnetid);83 }84 85 void onJoinFail(const SpoVNetID& spovnetid) {86 if (nodeListener != NULL) nodeListener->onJoinFailed(spovnetid);87 }88 89 void onLeaveSuccess( const SpoVNetID& spovnetid ){90 if (nodeListener != NULL) nodeListener->onLeaveCompleted(spovnetid);91 }92 93 void onLeaveFail( const SpoVNetID& spovnetid ){94 if (nodeListener != NULL) nodeListener->onLeaveFailed(spovnetid);95 }96 97 void onLinkUp(const LinkID& link, const NodeID& local, const NodeID& remote) {98 if (commListener != NULL) commListener->onLinkUp(link, remote);99 }100 101 void onLinkDown(const LinkID& link, const NodeID& local,102 const NodeID& remote) {103 if (commListener != NULL) commListener->onLinkDown(link, remote);104 }105 106 void onLinkChanged(const LinkID& link, const NodeID& local,107 const NodeID& remote) {108 if (commListener != NULL) commListener->onLinkChanged(link, remote);109 }110 111 void onLinkFail(const LinkID& id, const NodeID& local, const NodeID& remote) {112 if (commListener != NULL) commListener->onLinkFail(id, remote);113 }114 115 void onLinkQoSChanged(const LinkID& id, const NodeID& local,116 const NodeID& remote, const QoSParameterSet& qos) {117 if (commListener != NULL) commListener->onLinkQoSChanged(id, remote,118 LinkProperties::DEFAULT);119 }120 121 bool receiveMessage(const Message* message, const LinkID& link,122 const NodeID& node) {123 if (commListener != NULL) commListener->onMessage(124 const_cast<Message*>(message), node, link);125 }126 };127 128 ServiceID Node::anonymousService = ServiceID(0xFF00);129 48 130 49 Node::Node(AribaModule& ariba_mod, const Name& node_name) : … … 143 62 nodeId = generateNodeId(name); 144 63 145 ariba_mod.base_comm->start(ariba_mod.ip_addr, ariba_mod.tcp_port);146 base_overlay->start( *ariba_mod.base_comm, nodeId );147 148 64 const communication::EndpointDescriptor* ep = 149 65 ariba_mod.getBootstrapNode(vnetname); 150 66 if( ep == NULL ) return; 151 67 68 ariba_mod.base_comm->start(ariba_mod.ip_addr, ariba_mod.tcp_port); 69 base_overlay->start( *ariba_mod.base_comm, nodeId ); 152 70 base_overlay->joinSpoVNet( spovnetId, *ep); 153 71 } … … 173 91 base_overlay->leaveSpoVNet(); 174 92 ariba_mod.base_comm->stop(); 175 176 93 base_overlay->stop(); 177 94 } … … 222 139 223 140 void Node::bind(NodeListener* listener) { 224 base_overlay->bind(new ServiceInterfaceWrapper(listener), 225 Node::anonymousService); 141 base_overlay->bind(listener); 226 142 } 227 143 228 144 void Node::unbind(NodeListener* listener) { 229 delete base_overlay->unbind(Node::anonymousService);145 base_overlay->unbind(listener); 230 146 } 231 147 232 148 void Node::bind(CommunicationListener* listener, const ServiceID& sid) { 233 base_overlay->bind( new ServiceInterfaceWrapper(listener), sid);149 base_overlay->bind(listener, sid); 234 150 } 235 151 236 152 void Node::unbind(CommunicationListener* listener, const ServiceID& sid) { 237 delete base_overlay->unbind(sid);153 base_overlay->unbind(listener, sid); 238 154 } 239 155 -
source/ariba/Node.h
r3037 r3055 42 42 // forward declarations 43 43 namespace ariba { 44 class Node; 44 class Node; 45 namespace overlay { 46 class BaseOverlay; 47 } 45 48 } 46 49 … … 55 58 #include "DataMessage.h" 56 59 60 using ariba::overlay::BaseOverlay; 57 61 using std::vector; 58 62 59 63 namespace ariba { 60 61 // forward declaration62 namespace interface {63 class ServiceInterface;64 }65 66 namespace overlay {67 class BaseOverlay;68 }69 64 70 65 /** … … 338 333 AribaModule& ariba_mod; //< ariba module 339 334 SpoVNetID spovnetId; //< current spovnet id 340 NodeID nodeId; 335 NodeID nodeId; //< current node id 341 336 overlay::BaseOverlay* base_overlay; //< the base overlay 342 343 // delegates344 static ServiceID anonymousService;345 337 }; 346 338 -
source/ariba/NodeListener.h
r2409 r3055 44 44 class NodeListener; 45 45 class Node; 46 class ServiceInterfaceWrapper;47 46 } 48 47 … … 55 54 * 56 55 * @author Sebastian Mies <mies@tm.uka.de> 56 * @author Christoph Mayer <mayer@tm.uka.de> 57 57 */ 58 58 class NodeListener { 59 59 friend class Node; 60 friend class ServiceInterfaceWrapper;61 60 public: 62 63 61 NodeListener(); 64 62 virtual ~NodeListener(); 65 66 63 protected: 67 64 /** -
source/ariba/SpoVNetProperties.h
r2440 r3055 62 62 * 63 63 * @author Sebastian Mies <mies@tm.uka.de> 64 * @author Christoph Mayer <mayer@tm.uka.de> 64 65 */ 65 66 class SpoVNetProperties { -
source/ariba/ariba.h
r2460 r3055 45 45 46 46 #include "AribaModule.h" 47 #include "CommunicationListener.h" 47 48 #include "DataMessage.h" 48 49 #include "Identifiers.h" 49 50 #include "LinkProperties.h" 51 #include "Message.h" 50 52 #include "Module.h" 51 53 #include "Name.h" … … 53 55 #include "NodeListener.h" 54 56 #include "SpoVNetProperties.h" 55 #include "CommunicationListener.h"56 #include "Message.h"57 57 58 58 #endif /* ARIBA_H_ */ -
source/ariba/communication/modules/transport/omnet/AribaOmnetModule.cpp
r3054 r3055 40 40 41 41 #include "ariba/utility/system/StartupWrapper.h" // circular inclusion 42 #include "ariba/interface/ServiceInterface.h"43 42 using ariba::utility::StartupWrapper; 44 using ariba::interface::ServiceInterface;45 43 46 44 namespace ariba { -
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 } -
source/ariba/overlay/BaseOverlay.h
r3041 r3055 59 59 #include "ariba/communication/CommunicationEvents.h" 60 60 61 #include "ariba/interface/ServiceInterface.h"62 63 61 #include "ariba/overlay/modules/OverlayInterface.h" 64 62 #include "ariba/overlay/modules/OverlayFactory.h" … … 67 65 #include "ariba/overlay/messages/JoinRequest.h" 68 66 #include "ariba/overlay/messages/JoinReply.h" 67 68 // forward declerations 69 namespace ariba { 70 class NodeListener; 71 class CommunicationListener; 72 73 namespace utility { 74 class OvlVis; 75 } 76 } 69 77 70 78 using std::vector; … … 76 84 using std::find; 77 85 86 using ariba::NodeListener; 87 using ariba::CommunicationListener; 88 78 89 using ariba::communication::EndpointDescriptor; 79 90 using ariba::communication::BaseCommunication; 80 91 using ariba::communication::CommunicationEvents; 81 82 using ariba::interface::ServiceInterface;83 92 84 93 using ariba::overlay::OverlayMsg; … … 101 110 using ariba::utility::seqnum_t; 102 111 using ariba::utility::Timer; 112 using ariba::utility::OvlVis; 103 113 104 114 #define ovl OvlVis::instance() 105 115 #define ovlId OvlVis::NETWORK_ID_BASE_OVERLAY 106 107 // needed for friend decleration108 // in different namespace109 namespace ariba {110 class Node;111 }112 116 113 117 namespace ariba { … … 121 125 122 126 use_logging_h( BaseOverlay ); 123 friend class ariba::Node;124 125 127 public: 126 127 128 /** 128 129 * Constructs an empty non-functional base overlay instance … … 147 148 /** 148 149 * Starts a link establishment procedure to the specfied node 150 * for the service with id service 149 151 * 150 * @param node The node id 152 * @param node Destination node id 153 * @param service Service to connect to 151 154 */ 152 155 const LinkID establishLink( const NodeID& node, const ServiceID& service ); 153 156 154 157 /** 155 * TODO 158 * Starts a link establishment procedure to the specified 159 * endpoint and to the specified service 156 160 */ 157 161 const LinkID establishLink( const EndpointDescriptor& ep, const ServiceID& service ); … … 176 180 * Depending on the structure of the overlay, this can be very different. 177 181 */ 178 void broadcastMessage( 179 Message* message, 180 const ServiceID& service 181 ); 182 void broadcastMessage( Message* message, const ServiceID& service ); 182 183 183 184 /** … … 200 201 201 202 /** 202 * Registers a receiver. 203 * 204 * @param receiver An implementation of the receiver interface 205 */ 206 bool bind( ServiceInterface* service, const ServiceID& sid ); 207 208 /** 209 * Unregister a receiver. 210 * 211 * @param sid The service id to unregister 212 */ 213 ServiceInterface* unbind( const ServiceID& sid ); 203 * TODO 204 */ 205 void bind(CommunicationListener* listener, const ServiceID& sid); 206 207 /** 208 * TODO 209 */ 210 void unbind(CommunicationListener* listener, const ServiceID& sid); 211 212 /** 213 * TODO 214 */ 215 void bind(NodeListener* listener); 216 217 /** 218 * TODO 219 */ 220 void unbind(NodeListener* listener); 214 221 215 222 /** … … 221 228 const NodeID& getNodeID( const LinkID& lid = LinkID::UNSPECIFIED ) const ; 222 229 223 protected: 224 225 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 229 void joinSpoVNet( 230 const SpoVNetID& id, 231 const EndpointDescriptor& bootstrapEp 232 ); 233 230 /** 231 * TODO 232 */ 233 void joinSpoVNet( const SpoVNetID& id, const EndpointDescriptor& bootstrapEp ); 234 235 /** 236 * TODO 237 */ 234 238 void createSpoVNet( 235 239 const SpoVNetID& id, … … 239 243 ); 240 244 241 void leaveSpoVNet( 242 ); 243 244 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 245 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 246 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 245 /** 246 * TODO 247 */ 248 void leaveSpoVNet(); 249 250 protected: 251 252 /** 253 * TODO 254 */ 248 255 virtual void onLinkUp( const LinkID& id, const NetworkLocator* local, const NetworkLocator* remote ); 249 256 257 /** 258 * TODO 259 */ 250 260 virtual void onLinkDown( const LinkID& id, const NetworkLocator* local, const NetworkLocator* remote ); 251 261 252 262 virtual void onLinkChanged( const LinkID& id, const NetworkLocator* oldlocal, const NetworkLocator* newlocal, const NetworkLocator* oldremote, const NetworkLocator* newremote ); 253 263 264 /** 265 * TODO 266 */ 254 267 virtual void onLinkFail( const LinkID& id, const NetworkLocator* local, const NetworkLocator* remote ); 255 268 269 /** 270 * TODO 271 */ 256 272 virtual void onLinkQoSChanged( const LinkID& id, const NetworkLocator* local, const NetworkLocator* remote, const QoSParameterSet& qos ); 257 273 … … 260 276 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 261 277 278 /** 279 * TODO 280 */ 262 281 virtual bool receiveMessage( const Message* message, const LinkID& link, const NodeID& ); // nodeid is not valid in this case! 263 282 … … 270 289 */ 271 290 virtual void incomingRouteMessage( Message* msg ); 291 292 /** 293 * see OverlayStructureEvents.h, called from specific OverlayInterface class 294 */ 272 295 virtual void onNodeJoin( const NodeID& node ); 273 296 274 // for timer events 297 298 /** 299 * TODO, for timer events 300 */ 275 301 virtual void eventFunction(); 276 302 277 303 private: 278 279 304 /** 280 305 * The BaseCommunication the BaseOverlay … … 295 320 296 321 /** 297 * A demultiplexer that maps listeners to service ids 298 * to deliver upcoming messages to the correct service. 299 */ 300 Demultiplexer<ServiceInterface*, ServiceID> listenerMux; 322 * TODO 323 */ 324 Demultiplexer<CommunicationListener*, ServiceID> communicationListeners; 325 326 /** 327 * TODO 328 */ 329 typedef vector<NodeListener*> NodeListenerVector; 330 331 /** 332 * TODO 333 */ 334 NodeListenerVector nodeListeners; 301 335 302 336 /** … … 322 356 } BaseOverlayState; 323 357 358 /** 359 * TODO 360 */ 324 361 BaseOverlayState state; 325 362 … … 344 381 345 382 LinkItem( const LinkID& _link, const NodeID& _node, 346 const ServiceID& _service, ServiceInterface* _interface )383 const ServiceID& _service, CommunicationListener* _interface ) 347 384 : link( _link ), node( _node ), service( _service ), interface( _interface ), 348 385 autolink( false ), lastuse( time(NULL) ) { … … 354 391 NodeID node; 355 392 ServiceID service; 356 ServiceInterface* interface;393 CommunicationListener* interface; 357 394 358 395 // information needed for auto links … … 370 407 LinkMapping linkMapping; 371 408 372 // nodes with pending joines. TODO: should be cleaned every some seconds 373 // add timestamps to each, and check on occasion 409 410 /** 411 * nodes with pending joines. TODO: should be cleaned every 412 * some seconds, add timestamps to each, and check on occasion 413 */ 374 414 typedef vector<NodeID> JoiningNodes; 375 415 JoiningNodes joiningNodes; -
source/ariba/overlay/modules/OverlayInterface.h
r3054 r3055 40 40 #define __OVERLAY_INTERFACE_H 41 41 42 #include "ariba/CommunicationListener.h" 42 43 #include "ariba/communication/EndpointDescriptor.h" 43 #include "ariba/interface/ServiceInterface.h"44 44 #include "ariba/overlay/modules/OverlayStructureEvents.h" 45 45 #include "ariba/utility/types/NodeID.h" 46 46 #include "ariba/utility/types/ServiceID.h" 47 47 48 using ariba::CommunicationListener; 48 49 using ariba::communication::EndpointDescriptor; 49 using ariba::interface::ServiceInterface;50 50 using ariba::overlay::OverlayStructureEvents; 51 51 using ariba::utility::NodeID; … … 57 57 class BaseOverlay; 58 58 59 class OverlayInterface : public ServiceInterface{59 class OverlayInterface : public CommunicationListener { 60 60 public: 61 61 OverlayInterface( -
source/ariba/overlay/modules/onehop/OneHop.h
r3054 r3055 85 85 86 86 // 87 // see ServiceInterface.h and OverlayInterface.h87 // see CommunicationListener.h and OverlayInterface.h 88 88 // 89 89
Note:
See TracChangeset
for help on using the changeset viewer.