ChurnGenerator Class Reference

#include <ChurnGenerator.h>

Inheritance diagram for ChurnGenerator:

LifetimeChurn ParetoChurn RandomChurn List of all members.

Detailed Description

Base class for different churn models.


Public Member Functions

virtual int numInitStages () const
virtual void initialize (int stage)
virtual void initializeChurn ()=0
virtual void handleMessage (cMessage *msg)=0
void setNodeType (NodeType t)

Public Attributes

bool init
 still in initialization phase?
int terminalCount
 current number of overlay terminals

Protected Member Functions

virtual void updateDisplayString ()=0

Protected Attributes

UnderlayConfiguratorunderlayConfigurator
int initialOverlayTerminalNum
 number of overlay terminals at beginning of simulation
int targetOverlayTerminalNum
 final number of overlay terminals
NodeType type
 the nodeType this generator is responsible for


Member Function Documentation

virtual int ChurnGenerator::numInitStages (  )  const [inline, virtual]

00057 { return MAX_STAGE_UNDERLAY + 1; }

void ChurnGenerator::initialize ( int  stage  )  [virtual]

00028 {
00029     // because of IPAddressResolver, we need to wait until interfaces are registered,
00030     // address auto-assignment takes place etc.
00031     if(stage != MAX_STAGE_UNDERLAY)
00032         return;
00033 
00034     if (type.typeID == 0) {
00035         opp_error("NodeType not set when initializing ChurnGenerator");
00036     }
00037 
00038     underlayConfigurator = UnderlayConfiguratorAccess().get();
00039     // get desired # of terminals
00040     initialOverlayTerminalNum = par("initialOverlayTerminalNum");
00041     targetOverlayTerminalNum = par("targetOverlayTerminalNum");
00042 
00043     type.overlayType = std::string(par("overlayType"));
00044     type.tier1Type = std::string(par("tier1Type"));
00045     type.tier2Type = std::string(par("tier2Type"));
00046     type.tier3Type = std::string(par("tier3Type"));
00047     type.channelTypes = cStringTokenizer(par("channelTypes"), " ").asVector();
00048 
00049     init = true;
00050     // set churn type
00051     updateDisplayString();
00052 }

virtual void ChurnGenerator::initializeChurn (  )  [pure virtual]

Implemented in LifetimeChurn, ParetoChurn, and RandomChurn.

virtual void ChurnGenerator::handleMessage ( cMessage *  msg  )  [pure virtual]

Implemented in LifetimeChurn, ParetoChurn, and RandomChurn.

void ChurnGenerator::setNodeType ( NodeType  t  )  [inline]

00061 { type = t; }

virtual void ChurnGenerator::updateDisplayString (  )  [protected, pure virtual]

Implemented in LifetimeChurn, ParetoChurn, and RandomChurn.


Member Data Documentation

bool ChurnGenerator::init

still in initialization phase?

int ChurnGenerator::terminalCount

current number of overlay terminals

UnderlayConfigurator* ChurnGenerator::underlayConfigurator [protected]

int ChurnGenerator::initialOverlayTerminalNum [protected]

number of overlay terminals at beginning of simulation

int ChurnGenerator::targetOverlayTerminalNum [protected]

final number of overlay terminals

Reimplemented in RandomChurn.

NodeType ChurnGenerator::type [protected]

the nodeType this generator is responsible for


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