No churn generating class (only bootstraps a networks). More...
#include <NoChurn.h>
Public Member Functions | |
| void | handleMessage (cMessage *msg) |
| void | initializeChurn () |
| ~NoChurn () | |
Protected Member Functions | |
| void | updateDisplayString () |
Private Attributes | |
| double | initialMean |
| mean of update interval during initalization phase | |
| double | initialDeviation |
| deviation of update interval during initalization phase | |
| bool | initAddMoreTerminals |
| true, if we're still adding more terminals in the init phase | |
| cMessage * | mobilityTimer |
| message to schedule events | |
No churn generating class (only bootstraps a networks).
Definition at line 36 of file NoChurn.h.
| NoChurn::~NoChurn | ( | ) |
Definition at line 77 of file NoChurn.cc.
{
// destroy self timer messages
cancelAndDelete(mobilityTimer);
}
| void NoChurn::handleMessage | ( | cMessage * | msg | ) | [virtual] |
Implements ChurnGenerator.
Definition at line 45 of file NoChurn.cc.
{
if (!msg->isSelfMessage()) {
throw cRuntimeError("NoChurn::handleMessage(): "
"Unknown message received!");
delete msg;
return;
}
if (msg == mobilityTimer) {
if (terminalCount < targetOverlayTerminalNum) {
TransportAddress* ta = underlayConfigurator->createNode(type);
delete ta; // Address not needed in this churn model
}
if (terminalCount >= targetOverlayTerminalNum) {
initAddMoreTerminals = false;
underlayConfigurator->initFinished();
} else {
scheduleAt(simTime()
+ truncnormal(initialMean, initialDeviation), msg);
}
}
}
| void NoChurn::initializeChurn | ( | ) | [virtual] |
Implements ChurnGenerator.
Definition at line 31 of file NoChurn.cc.
{
Enter_Method_Silent();
initialMean = par("initPhaseCreationInterval");
initialDeviation = initialMean / 3;
targetOverlayTerminalNum = par("targetOverlayTerminalNum");
initAddMoreTerminals = true;
mobilityTimer = new cMessage("mobilityTimer");
scheduleAt(simTime(), mobilityTimer);
}
| void NoChurn::updateDisplayString | ( | ) | [protected, virtual] |
Implements ChurnGenerator.
Definition at line 70 of file NoChurn.cc.
{
char buf[80];
sprintf(buf, "No churn");
getDisplayString().setTagArg("t", 0, buf);
}
bool NoChurn::initAddMoreTerminals [private] |
true, if we're still adding more terminals in the init phase
Definition at line 49 of file NoChurn.h.
Referenced by handleMessage(), and initializeChurn().
double NoChurn::initialDeviation [private] |
deviation of update interval during initalization phase
Definition at line 48 of file NoChurn.h.
Referenced by handleMessage(), and initializeChurn().
double NoChurn::initialMean [private] |
mean of update interval during initalization phase
Definition at line 47 of file NoChurn.h.
Referenced by handleMessage(), and initializeChurn().
cMessage* NoChurn::mobilityTimer [private] |
message to schedule events
Definition at line 50 of file NoChurn.h.
Referenced by handleMessage(), initializeChurn(), and ~NoChurn().
1.7.1