Public Member Functions | Protected Member Functions | Private Attributes

NoChurn Class Reference

No churn generating class (only bootstraps a networks). More...

#include <NoChurn.h>

Inheritance diagram for NoChurn:
ChurnGenerator

List of all members.

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

Detailed Description

No churn generating class (only bootstraps a networks).

Definition at line 36 of file NoChurn.h.


Constructor & Destructor Documentation

NoChurn::~NoChurn (  ) 

Definition at line 77 of file NoChurn.cc.

                  {
    // destroy self timer messages
    cancelAndDelete(mobilityTimer);
}


Member Function Documentation

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);
}


Member Data Documentation

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().


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