OverSim
PeerInfo Class Reference

Base class for providing additional underlay specific information associated with a certain transport address. More...

#include <PeerInfo.h>

Inheritance diagram for PeerInfo:
InetInfo ReaSEInfo SimpleInfo

Public Member Functions

 PeerInfo (uint32_t type, int moduleId, cObject **context)
 constructor
virtual ~PeerInfo ()
int getModuleID ()
 returns the moduleId of the peer
int8_t getNpsLayer ()
 returns the NPS layer of the peer
void setNpsLayer (int8_t layer)
 set the NPS layer of the peer
uint32_t getTypeID ()
 returns the type of the node
bool isPreKilled ()
 is the peer marked for deletion?
void setPreKilled (bool killed=true)
 mark that the peer gets deleted soon
bool isMalicious ()
 is the peer malicious?
cObject ** getContext ()

Private Member Functions

virtual void dummy ()
 dummy-function to make PeerInfo polymorphic
void setMalicious (bool malic=true)
 set the maliciousness of the peer

Private Attributes

bool malicious
 true if the node is malicious
bool preKilled
 true, if the node is marked for deletion
int moduleId
 the moduleId of the peer
uint32_t type
 ID of the node type.
int8_t npsLayer
 NPS Layer of the node.
cObject ** context
 context pointer

Friends

class PeerStorage
std::ostream & operator<< (std::ostream &os, const PeerInfo info)
 standard output stream for PeerInfo, gives moduleID and true if peer has bootstrapped, false otherwise

Detailed Description

Base class for providing additional underlay specific information associated with a certain transport address.

Definition at line 39 of file PeerInfo.h.

Constructor & Destructor Documentation

PeerInfo::PeerInfo ( uint32_t  type,
int  moduleId,
cObject **  context 
)

constructor

Definition at line 26 of file PeerInfo.cc.

{
malicious = false;
this->moduleId = moduleId;
this->type = type;
this->npsLayer = -1; // layer not determined yet
this->context = context;
}
virtual PeerInfo::~PeerInfo ( )
inlinevirtual

Definition at line 49 of file PeerInfo.h.

{};

Member Function Documentation

void PeerInfo::dummy ( )
privatevirtual

dummy-function to make PeerInfo polymorphic

Reimplemented in InetInfo, SimpleInfo, and ReaSEInfo.

Definition at line 35 of file PeerInfo.cc.

{}
cObject** PeerInfo::getContext ( )
inline

Definition at line 98 of file PeerInfo.h.

Referenced by GlobalNodeList::getContext().

{ return context; };
int PeerInfo::getModuleID ( )
inline

returns the moduleId of the peer

Returns
the moduleId

Definition at line 56 of file PeerInfo.h.

Referenced by TraceChurn::createNode(), TopologyVis::deleteOverlayNeighborArrow(), and GlobalNodeList::setOverlayReadyIcon().

{ return moduleId; };
int8_t PeerInfo::getNpsLayer ( )
inline

returns the NPS layer of the peer

Returns
the NPS layer

Definition at line 63 of file PeerInfo.h.

Referenced by Nps::getLandmarks(), GlobalNodeList::killPeer(), SimpleUDP::processMsgFromApp(), and SimpleTCPConnection::sendToIP().

{ return npsLayer; };
bool PeerInfo::isMalicious ( )
inline

is the peer malicious?

Returns
true if the peer is malicious, false otherwise

Definition at line 96 of file PeerInfo.h.

Referenced by PeerStorage::insertMapIteratorIntoVector(), GlobalNodeList::isMalicious(), and PeerStorage::removeMapIteratorFromVector().

{ return malicious; };
bool PeerInfo::isPreKilled ( )
inline

is the peer marked for deletion?

Returns
true if the peer is marked for deletion, false otherwise

Definition at line 82 of file PeerInfo.h.

Referenced by GlobalNodeList::setPreKilled().

{ return preKilled; };
void PeerInfo::setMalicious ( bool  malic = true)
inlineprivate

set the maliciousness of the peer

Parameters
malicwhether the peer is malicious or not

Definition at line 119 of file PeerInfo.h.

{ malicious = malic; };
void PeerInfo::setNpsLayer ( int8_t  layer)
inline

set the NPS layer of the peer

Definition at line 68 of file PeerInfo.h.

Referenced by Nps::setOwnLayer().

{ npsLayer = layer; }
void PeerInfo::setPreKilled ( bool  killed = true)
inline

mark that the peer gets deleted soon

Parameters
killedtrue, if the peer gets deleted soon

Definition at line 89 of file PeerInfo.h.

Referenced by GlobalNodeList::addPeer(), and GlobalNodeList::setPreKilled().

{ preKilled = killed; };

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const PeerInfo  info 
)
friend

standard output stream for PeerInfo, gives moduleID and true if peer has bootstrapped, false otherwise

Parameters
osthe ostream
infothe PeerInfo
Returns
the output stream

Definition at line 39 of file PeerInfo.cc.

{
os << "ModuleId: " << info.moduleId;
os << " TypeID: " << info.type;
if (info.npsLayer >= 0) os << " NPS Layer: " << info.npsLayer;
return os;
}
friend class PeerStorage
friend

Definition at line 41 of file PeerInfo.h.

Member Data Documentation

cObject** PeerInfo::context
private

context pointer

Definition at line 126 of file PeerInfo.h.

Referenced by getContext(), and PeerInfo().

bool PeerInfo::malicious
private

true if the node is malicious

Definition at line 119 of file PeerInfo.h.

Referenced by isMalicious(), PeerInfo(), and setMalicious().

int PeerInfo::moduleId
private

the moduleId of the peer

Definition at line 123 of file PeerInfo.h.

Referenced by getModuleID(), operator<<(), and PeerInfo().

int8_t PeerInfo::npsLayer
private

NPS Layer of the node.

Definition at line 125 of file PeerInfo.h.

Referenced by getNpsLayer(), operator<<(), PeerInfo(), and setNpsLayer().

bool PeerInfo::preKilled
private

true, if the node is marked for deletion

Definition at line 122 of file PeerInfo.h.

Referenced by isPreKilled(), and setPreKilled().

uint32_t PeerInfo::type
private

ID of the node type.

Definition at line 124 of file PeerInfo.h.

Referenced by getTypeID(), operator<<(), and PeerInfo().


The documentation for this class was generated from the following files: