Public Member Functions | Private Member Functions | Private Attributes | Friends

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

List of all members.

Public Member Functions

 PeerInfo (uint32_t type, int moduleId, cObject **context)
 constructor
virtual ~PeerInfo ()
bool isBootstrapped ()
 has the peer bootstrapped yet?
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
void setBootstrapped (bool bootstrap=true)
 sets or deletes the bootstrapped parameter

Private Attributes

bool bootstrapped
 true if node has bootstrapped
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.

{
    bootstrapped = false;
    malicious = false;
    this->moduleId = moduleId;
    this->type = type;
    this->npsLayer = -1;   // layer not determined yet
    this->context = context;
}

virtual PeerInfo::~PeerInfo (  )  [inline, virtual]

Definition at line 49 of file PeerInfo.h.

{};


Member Function Documentation

void PeerInfo::dummy (  )  [private, virtual]

dummy-function to make PeerInfo polymorphic

Reimplemented in InetInfo, ReaSEInfo, and SimpleInfo.

Definition at line 36 of file PeerInfo.cc.

{}

cObject** PeerInfo::getContext (  )  [inline]

Definition at line 105 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 63 of file PeerInfo.h.

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

{ return moduleId; };

int8_t PeerInfo::getNpsLayer (  )  [inline]

returns the NPS layer of the peer

Returns:
the NPS layer

Definition at line 70 of file PeerInfo.h.

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

{ return npsLayer; };

bool PeerInfo::isBootstrapped (  )  [inline]

has the peer bootstrapped yet?

Returns:
true if the peer has bootstrapped, false otherwise

Definition at line 56 of file PeerInfo.h.

Referenced by PeerStorage::insertMapIteratorIntoVector(), operator<<(), and PeerStorage::removeMapIteratorFromVector().

{ return bootstrapped; };

bool PeerInfo::isMalicious (  )  [inline]

is the peer malicious?

Returns:
true if the peer is malicious, false otherwise

Definition at line 103 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 89 of file PeerInfo.h.

Referenced by GlobalNodeList::setPreKilled().

{ return preKilled; };

void PeerInfo::setBootstrapped ( bool  bootstrap = true  )  [inline, private]

sets or deletes the bootstrapped parameter

Parameters:
bootstrap true or () if peer has bootstrapped, false otherwise

Definition at line 133 of file PeerInfo.h.

{ bootstrapped = bootstrap; };

void PeerInfo::setMalicious ( bool  malic = true  )  [inline, private]

set the maliciousness of the peer

Parameters:
malic whether the peer is malicious or not

Definition at line 126 of file PeerInfo.h.

{ malicious = malic; };

void PeerInfo::setNpsLayer ( int8_t  layer  )  [inline]

set the NPS layer of the peer

Definition at line 75 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:
killed true, if the peer gets deleted soon

Definition at line 96 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:
os the ostream
info the PeerInfo
Returns:
the output stream

Definition at line 40 of file PeerInfo.cc.

{
    os  << "ModuleId: " << info.moduleId << "Bootstrapped: "
        << (info.bootstrapped ? "true" : "false");

    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

bool PeerInfo::bootstrapped [private]

true if node has bootstrapped

Definition at line 133 of file PeerInfo.h.

Referenced by isBootstrapped(), operator<<(), PeerInfo(), and setBootstrapped().

cObject** PeerInfo::context [private]

context pointer

Definition at line 141 of file PeerInfo.h.

Referenced by getContext().

bool PeerInfo::malicious [private]

true if the node is malicious

Definition at line 136 of file PeerInfo.h.

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

int PeerInfo::moduleId [private]

the moduleId of the peer

Definition at line 138 of file PeerInfo.h.

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

int8_t PeerInfo::npsLayer [private]

NPS Layer of the node.

Definition at line 140 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 137 of file PeerInfo.h.

Referenced by isPreKilled(), and setPreKilled().

uint32_t PeerInfo::type [private]

ID of the node type.

Definition at line 139 of file PeerInfo.h.

Referenced by getTypeID().


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