ChurnGenerator Class Reference

Base class for different churn models. More...

#include <ChurnGenerator.h>

Inheritance diagram for ChurnGenerator:
LifetimeChurn NoChurn ParetoChurn RandomChurn TraceChurn

List of all members.

Public Member Functions

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

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 targetOverlayTerminalNum
 final number of overlay terminals
NodeType type
 the nodeType this generator is responsible for

Detailed Description

Base class for different churn models.

Definition at line 58 of file ChurnGenerator.h.


Member Function Documentation

const NodeType& ChurnGenerator::getNodeType (  )  [inline]

Definition at line 66 of file ChurnGenerator.h.

00066 { return type; }

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

Definition at line 27 of file ChurnGenerator.cc.

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     targetOverlayTerminalNum = par("targetOverlayTerminalNum");
00041 
00042     type.overlayType = par("overlayType").stdstringValue();
00043     type.tier1Type = par("tier1Type").stdstringValue();
00044     type.tier2Type = par("tier2Type").stdstringValue();
00045     type.tier3Type = par("tier3Type").stdstringValue();
00046     type.channelTypesTx = cStringTokenizer(par("channelTypes"), " ").asVector();
00047     type.channelTypesRx = cStringTokenizer(par("channelTypesRx"), " ").asVector();
00048     
00049     if (type.channelTypesRx.size() != type.channelTypesTx.size()) {
00050         type.channelTypesRx = type.channelTypesTx;
00051     }
00052     
00053     
00054     terminalCount = 0;
00055     init = true;
00056 
00057     updateDisplayString();
00058     WATCH(terminalCount);
00059 
00060     initializeChurn();
00061 }

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

Implemented in LifetimeChurn, NoChurn, ParetoChurn, RandomChurn, and TraceChurn.

Referenced by initialize().

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

Definition at line 61 of file ChurnGenerator.h.

00061 { return MAX_STAGE_UNDERLAY + 1; }

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

Definition at line 65 of file ChurnGenerator.h.

Referenced by UnderlayConfigurator::initialize().

00065 { type = t; }

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

Implemented in LifetimeChurn, NoChurn, ParetoChurn, RandomChurn, and TraceChurn.

Referenced by initialize().


Member Data Documentation

still in initialization phase?

Definition at line 67 of file ChurnGenerator.h.

Referenced by initialize().

final number of overlay terminals

Reimplemented in RandomChurn.

Definition at line 73 of file ChurnGenerator.h.

Referenced by NoChurn::handleMessage(), initialize(), ParetoChurn::initializeChurn(), NoChurn::initializeChurn(), and LifetimeChurn::initializeChurn().

current number of overlay terminals

Definition at line 68 of file ChurnGenerator.h.

Referenced by RandomChurn::handleMessage(), NoChurn::handleMessage(), and initialize().


The documentation for this class was generated from the following files:
Generated on Wed May 26 16:21:16 2010 for OverSim by  doxygen 1.6.3