IntermediateNodeData Class Reference

#include <IntermediateNodeData.h>

List of all members.

Public Member Functions

 IntermediateNodeData (SubSpace subSpace)
int getSubSpaceId ()
std::list< IPAddress > getIps ()
IPAddress getBackupIp ()
void setBackupIp (IPAddress ip)
int getTimeSlot ()
void setTimeSlot (int timeSlot)
double getDelay ()
int getSize ()
bool addDelay (double delay)
void addIp (IPAddress ip)
void removeIp (IPAddress ip)

Protected Attributes

SubSpace subSpace
std::list< IPAddress > ips
std::list< IPAddress >::iterator i
std::list< double > delays

Friends

std::ostream & operator<< (std::ostream &Stream, IntermediateNodeData r)


Constructor & Destructor Documentation

IntermediateNodeData::IntermediateNodeData ( SubSpace  subSpace  ) 

00021                                                             {
00022         this->subSpace = subSpace;
00023 }


Member Function Documentation

int IntermediateNodeData::getSubSpaceId (  ) 

00025                                         {
00026         return subSpace.getId();
00027 }

std::list< IPAddress > IntermediateNodeData::getIps (  ) 

00029                                                 {
00030         return ips;
00031 }

IPAddress IntermediateNodeData::getBackupIp (  ) 

00064                                             {
00065         return subSpace.getBackupIp();
00066 }

void IntermediateNodeData::setBackupIp ( IPAddress  ip  ) 

00067                                                    {
00068         subSpace.setBackupIp(ip);
00069 }

int IntermediateNodeData::getTimeSlot (  ) 

00070                                       {
00071         return subSpace.getTimeSlot();
00072 }

void IntermediateNodeData::setTimeSlot ( int  timeSlot  ) 

00073                                                    {
00074         this->subSpace.setTimeSlot( timeSlot );
00075 }

double IntermediateNodeData::getDelay (  ) 

00051                                       {
00052         double avg=0;
00053         if( delays.size() > 0 ) {
00054                 std::list<double>::iterator i=delays.begin();
00055                 while(i != delays.end() ) {
00056                         avg += *i;
00057                         ++i;
00058                 }
00059                 avg = avg / delays.size();
00060                 delays.clear();
00061         }
00062         return avg;
00063 }

int IntermediateNodeData::getSize (  ) 

00032                                   {
00033         return ips.size();
00034 }

bool IntermediateNodeData::addDelay ( double  delay  ) 

00046                                                 {
00047         delays.push_back(delay);
00048         if(delays.size() > 3) return true;
00049         return false;
00050 }

void IntermediateNodeData::addIp ( IPAddress  ip  ) 

00035                                              {
00036         ips.push_back( ip) ;
00037 }

void IntermediateNodeData::removeIp ( IPAddress  ip  ) 

00038                                                 {
00039         for( i = ips.begin(); i != ips.end(); ++i) {
00040                 if( *i == ip) {
00041                         ips.erase(i);
00042                         break;
00043                 }
00044         }
00045 }


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  Stream,
IntermediateNodeData  r 
) [friend]

00077 {
00078     return Stream << "ID:" << i.subSpace.getId() << " Resp: " << i.subSpace.getRespIp() << " Backup " << i.subSpace.getBackupIp() << " We have " << i.ips.size() << " Leaf Ips";
00079 }


Member Data Documentation

SubSpace IntermediateNodeData::subSpace [protected]

std::list<IPAddress> IntermediateNodeData::ips [protected]

std::list<IPAddress>::iterator IntermediateNodeData::i [protected]

std::list<double> IntermediateNodeData::delays [protected]


The documentation for this class was generated from the following files:
Generated on Tue Jul 24 16:51:18 2007 for ITM OverSim by  doxygen 1.5.1