Changeset 5614 for source/ariba/communication/BaseCommunication.cpp
- Timestamp:
- Aug 3, 2009, 11:35:20 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
source/ariba/communication/BaseCommunication.cpp
r5485 r5614 56 56 use_logging_cpp(BaseCommunication); 57 57 58 /// adds an endpoint to the list 59 void BaseCommunication::add_endpoint( const address_v* endpoint ) { 60 BOOST_FOREACH( endpoint_reference& ref, remote_endpoints ) { 61 if (*ref.endpoint == *endpoint) { 62 ref.count++; 63 return; 64 } 65 } 66 endpoint_reference ref; 67 ref.endpoint = endpoint; 68 ref.count = 0; 69 remote_endpoints.push_back(ref); 70 } 71 72 /// removes an endpoint from the list 73 void BaseCommunication::remove_endpoint( const address_v* endpoint ) { 74 for (vector<endpoint_reference>::iterator i = remote_endpoints.begin(); 75 i != remote_endpoints.end(); i++) { 76 if (*i->endpoint == *endpoint) { 77 i->count--; 78 if (i->count==0) { 79 logging_info("No more links to " << i->endpoint->to_string() << ": terminating transports!"); 80 transport->terminate(i->endpoint); 81 remote_endpoints.erase(i); 82 } 83 return; 84 } 85 } 86 } 87 58 88 BaseCommunication::BaseCommunication() { 59 89 this->transport = NULL; … … 254 284 } 255 285 256 /// called when a message is received f orm transport_peer286 /// called when a message is received from transport_peer 257 287 void BaseCommunication::receive_message(transport_protocol* transport, 258 288 const address_vf local, const address_vf remote, const uint8_t* data, … … 482 512 /// add a newly allocated link to the set of links 483 513 void BaseCommunication::addLink( LinkDescriptor* link ) { 514 add_endpoint(link->remoteLocator); 484 515 linkSet.push_back( link ); 485 516 } … … 489 520 for(LinkSet::iterator i=linkSet.begin(); i != linkSet.end(); i++){ 490 521 if( (*i)->localLink != localLink) continue; 522 remove_endpoint((*i)->remoteLocator); 491 523 delete *i; 492 524 linkSet.erase( i );
Note:
See TracChangeset
for help on using the changeset viewer.