#include <NicePeerInfo.h>
Public Member Functions | |
NicePeerInfo (Nice *_parent) | |
~NicePeerInfo () | |
void | set_distance_estimation_start (double value) |
double | getDES () |
void | set_distance (double value) |
double | get_distance () |
void | startHeartbeatTimeout () |
cMessage * | getHbTimer () |
void | updateDistance (TransportAddress member, double distance) |
double | getDistanceTo (TransportAddress member) |
unsigned int | get_last_sent_HB () |
void | set_last_sent_HB (unsigned int seqNo) |
unsigned int | get_last_recv_HB () |
void | set_last_recv_HB (unsigned int seqNo) |
double | get_last_HB_arrival () |
void | set_last_HB_arrival (double arrival) |
bool | get_backHBPointer () |
void | set_backHBPointer (bool _backHBPointer) |
void | set_backHB (bool backHBPointer, unsigned int seqNo, double time) |
double | get_backHB (unsigned int seqNo) |
unsigned int | get_backHB_seqNo (bool index) |
void | touch () |
double | getActivity () |
void | setSubClusterMembers (unsigned int members) |
unsigned int | getSubClusterMembers () |
Private Attributes | |
Nice * | parent |
double | distance_estimation_start |
double | distance |
cMessage * | hbTimer |
std::map< TransportAddress, double > | distanceTable |
double | activity |
unsigned int | subclustermembers |
HeartbeatEvaluator | backHB [2] |
bool | backHBPointer |
unsigned int | last_sent_HB |
unsigned int | last_recv_HB |
double | last_HB_arrival |
Friends | |
std::ostream & | operator<< (std::ostream &os, NicePeerInfo &pi) |
Definition at line 43 of file NicePeerInfo.h.
oversim::NicePeerInfo::NicePeerInfo | ( | Nice * | _parent | ) |
Definition at line 30 of file NicePeerInfo.cc.
: parent (_parent) { distance_estimation_start = -1; distance = -1; last_sent_HB = 1; last_recv_HB = 0; backHBPointer = false; last_HB_arrival = 0; activity = simTime().dbl(); subclustermembers = 0; WATCH_MAP(distanceTable); WATCH(last_sent_HB); WATCH(last_recv_HB); WATCH(last_HB_arrival); } // NicePeerInfo
oversim::NicePeerInfo::~NicePeerInfo | ( | ) |
Definition at line 52 of file NicePeerInfo.cc.
{
} // ~NicePeerInfo
double oversim::NicePeerInfo::get_backHB | ( | unsigned int | seqNo | ) |
Definition at line 197 of file NicePeerInfo.cc.
Referenced by oversim::operator<<().
unsigned int oversim::NicePeerInfo::get_backHB_seqNo | ( | bool | index | ) |
Definition at line 211 of file NicePeerInfo.cc.
Referenced by oversim::operator<<().
{ return backHB[index].first; } // get_backHB_seqNo
bool oversim::NicePeerInfo::get_backHBPointer | ( | ) |
Definition at line 175 of file NicePeerInfo.cc.
{ return backHBPointer; } // get_backHBPointer
double oversim::NicePeerInfo::get_distance | ( | ) |
Definition at line 78 of file NicePeerInfo.cc.
{ return distance; } // get_distance
double oversim::NicePeerInfo::get_last_HB_arrival | ( | ) |
Definition at line 160 of file NicePeerInfo.cc.
Referenced by oversim::operator<<().
{ return last_HB_arrival; } // get_last_HB_arrival
unsigned int oversim::NicePeerInfo::get_last_recv_HB | ( | ) |
Definition at line 146 of file NicePeerInfo.cc.
Referenced by oversim::operator<<().
{ return last_recv_HB; } // get_last_recv_HB
unsigned int oversim::NicePeerInfo::get_last_sent_HB | ( | ) |
Definition at line 132 of file NicePeerInfo.cc.
Referenced by oversim::operator<<().
{ return last_sent_HB; } // get_last_sent_HB
double oversim::NicePeerInfo::getActivity | ( | ) |
Definition at line 227 of file NicePeerInfo.cc.
Referenced by oversim::operator<<().
{ return activity; } // getActivity
double oversim::NicePeerInfo::getDES | ( | ) |
Definition at line 64 of file NicePeerInfo.cc.
{ return distance_estimation_start; } // getDES
double oversim::NicePeerInfo::getDistanceTo | ( | TransportAddress | member | ) |
Definition at line 110 of file NicePeerInfo.cc.
{ //std::cout << "getDistanceTo " << member.getIp() << "..." << endl; //get member out of map std::map<TransportAddress, double>::iterator it = distanceTable.find(member); if (it != distanceTable.end()) { //std::cout << "is in distanceTable" << endl; return it->second; } else { //std::cout << "is NOT in distanceTable" << endl; return -1; } } // getDistanceTo
cMessage * oversim::NicePeerInfo::getHbTimer | ( | ) |
Definition at line 85 of file NicePeerInfo.cc.
{ return hbTimer; } // startHeartbeatTimeout
unsigned int oversim::NicePeerInfo::getSubClusterMembers | ( | ) |
Definition at line 243 of file NicePeerInfo.cc.
{ return subclustermembers; }
void oversim::NicePeerInfo::set_backHB | ( | bool | backHBPointer, | |
unsigned int | seqNo, | |||
double | time | |||
) |
Definition at line 189 of file NicePeerInfo.cc.
{ backHB[backHBPointer].first = seqNo; backHB[backHBPointer].second = time; } // set_backHB
void oversim::NicePeerInfo::set_backHBPointer | ( | bool | _backHBPointer | ) |
Definition at line 182 of file NicePeerInfo.cc.
{ backHBPointer = _backHBPointer; } // set_backHBPointer
void oversim::NicePeerInfo::set_distance | ( | double | value | ) |
Definition at line 71 of file NicePeerInfo.cc.
Referenced by oversim::Nice::initializeOverlay().
{ distance = value; } // set_distance
void oversim::NicePeerInfo::set_distance_estimation_start | ( | double | value | ) |
Definition at line 57 of file NicePeerInfo.cc.
{ distance_estimation_start = value; } // set_distance_estimation_start
void oversim::NicePeerInfo::set_last_HB_arrival | ( | double | arrival | ) |
Definition at line 168 of file NicePeerInfo.cc.
{ last_HB_arrival = arrival; } // set_last_HB_arrival
void oversim::NicePeerInfo::set_last_recv_HB | ( | unsigned int | seqNo | ) |
Definition at line 153 of file NicePeerInfo.cc.
{ last_recv_HB = seqNo; } // set_last_recv_HB
void oversim::NicePeerInfo::set_last_sent_HB | ( | unsigned int | seqNo | ) |
Definition at line 139 of file NicePeerInfo.cc.
{ last_sent_HB = seqNo; } // set_last_sent_HB
void oversim::NicePeerInfo::setSubClusterMembers | ( | unsigned int | members | ) |
Definition at line 235 of file NicePeerInfo.cc.
{ subclustermembers = members; }
void oversim::NicePeerInfo::startHeartbeatTimeout | ( | ) |
void oversim::NicePeerInfo::touch | ( | ) |
Definition at line 219 of file NicePeerInfo.cc.
{ activity = simTime().dbl(); } // touch
void oversim::NicePeerInfo::updateDistance | ( | TransportAddress | member, | |
double | distance | |||
) |
Definition at line 92 of file NicePeerInfo.cc.
{ //get member out of map std::map<TransportAddress, double>::iterator it = distanceTable.find(member); if (it != distanceTable.end()) { it->second = distance; } else { distanceTable.insert(std::make_pair(member, distance)); } } // updateDistance
std::ostream& operator<< | ( | std::ostream & | os, | |
NicePeerInfo & | pi | |||
) | [friend] |
Definition at line 251 of file NicePeerInfo.cc.
{ os << "distance: " << pi.distance << endl; os << "des: " << pi.distance_estimation_start << endl; os << "last_rcv: " << pi.get_last_recv_HB() << endl; os << "last_sent: " << pi.get_last_sent_HB() << endl; os << "last_HB: " << pi.get_last_HB_arrival() << endl; os << "backHB[0].seqNo: " << pi.get_backHB_seqNo(0) << endl; os << "backHB[0].time: " << pi.get_backHB(pi.get_backHB_seqNo(0)) << endl; os << "backHB[1].seqNo: " << pi.get_backHB_seqNo(1) << endl; os << "backHB[1].time: " << pi.get_backHB(pi.get_backHB_seqNo(1)) << endl; os << "activity: " << pi.getActivity() << endl; std::map<TransportAddress, double>::iterator it = pi.distanceTable.begin(); while (it != pi.distanceTable.end()) { os << it->first << " : " << it->second << endl; it++; } return os; }
double oversim::NicePeerInfo::activity [private] |
Definition at line 97 of file NicePeerInfo.h.
Referenced by getActivity(), NicePeerInfo(), and touch().
HeartbeatEvaluator oversim::NicePeerInfo::backHB[2] [private] |
Definition at line 101 of file NicePeerInfo.h.
Referenced by get_backHB(), get_backHB_seqNo(), and set_backHB().
bool oversim::NicePeerInfo::backHBPointer [private] |
Definition at line 102 of file NicePeerInfo.h.
Referenced by get_backHBPointer(), NicePeerInfo(), and set_backHBPointer().
double oversim::NicePeerInfo::distance [private] |
Definition at line 93 of file NicePeerInfo.h.
Referenced by get_distance(), NicePeerInfo(), oversim::operator<<(), and set_distance().
double oversim::NicePeerInfo::distance_estimation_start [private] |
Definition at line 92 of file NicePeerInfo.h.
Referenced by getDES(), NicePeerInfo(), oversim::operator<<(), and set_distance_estimation_start().
std::map<TransportAddress, double> oversim::NicePeerInfo::distanceTable [private] |
Definition at line 95 of file NicePeerInfo.h.
Referenced by getDistanceTo(), NicePeerInfo(), oversim::operator<<(), and updateDistance().
cMessage* oversim::NicePeerInfo::hbTimer [private] |
Definition at line 94 of file NicePeerInfo.h.
Referenced by getHbTimer().
double oversim::NicePeerInfo::last_HB_arrival [private] |
Definition at line 106 of file NicePeerInfo.h.
Referenced by get_last_HB_arrival(), NicePeerInfo(), and set_last_HB_arrival().
unsigned int oversim::NicePeerInfo::last_recv_HB [private] |
Definition at line 105 of file NicePeerInfo.h.
Referenced by get_last_recv_HB(), NicePeerInfo(), and set_last_recv_HB().
unsigned int oversim::NicePeerInfo::last_sent_HB [private] |
Definition at line 104 of file NicePeerInfo.h.
Referenced by get_last_sent_HB(), NicePeerInfo(), and set_last_sent_HB().
Nice* oversim::NicePeerInfo::parent [private] |
Definition at line 91 of file NicePeerInfo.h.
unsigned int oversim::NicePeerInfo::subclustermembers [private] |
Definition at line 99 of file NicePeerInfo.h.
Referenced by getSubClusterMembers(), NicePeerInfo(), and setSubClusterMembers().