ScribeTest Class Reference

#include <ScribeTest.h>

List of all members.

Public Member Functions

 ScribeTest ()
 ~ScribeTest ()

Protected Member Functions

void handleMessage (cMessage *msg)
void joinGroup (int i)
void leaveGroup (int i)
void sendDataToGroup (int i)
void handleMCast (ALMMulticastMessage *mcast)

Protected Attributes

cMessage * timer
int groupNum


Constructor & Destructor Documentation

ScribeTest::ScribeTest (  )  [inline]

00033 { timer = new cMessage( "app_timer"); }

ScribeTest::~ScribeTest (  )  [inline]

00034 { cancelAndDelete( timer ); }


Member Function Documentation

void ScribeTest::handleMessage ( cMessage *  msg  )  [protected]

00029 {
00030     if( msg == timer ) {
00031         double random = uniform( 0, 1 );
00032         if( random < 0.1 || groupNum < 1 ) {
00033             joinGroup( ++groupNum );
00034         } else if( random < 0.2 ) {
00035             leaveGroup( groupNum-- );
00036         } else {
00037             sendDataToGroup( intuniform( 1, groupNum ));
00038         }
00039         scheduleAt( simulation.simTime() + 10, timer );
00040 
00041     } else if( ALMMulticastMessage* mcast = dynamic_cast<ALMMulticastMessage*>(msg) ){
00042         handleMCast( mcast );
00043     } else if( TierReadyMessage* readyMsg = dynamic_cast<TierReadyMessage*>(msg) ){
00044         if( readyMsg->getReady() ) {
00045             groupNum = 0;
00046             cancelEvent( timer );
00047             scheduleAt( simulation.simTime() + 1, timer );
00048         }
00049         delete msg;
00050     }
00051 }

void ScribeTest::joinGroup ( int  i  )  [protected]

00054 {
00055     ALMSubscribeMessage* msg = new ALMSubscribeMessage;
00056     msg->setGroupId(OverlayKey(i));
00057     send(msg, "to_lowerTier");
00058 }

void ScribeTest::leaveGroup ( int  i  )  [protected]

00061 {
00062     ALMLeaveMessage* msg = new ALMLeaveMessage;
00063     msg->setGroupId(OverlayKey(i));
00064     send(msg, "to_lowerTier");
00065 }

void ScribeTest::sendDataToGroup ( int  i  )  [protected]

00068 {
00069     ALMMulticastMessage* msg = new ALMMulticastMessage("FOO!");
00070     msg->setGroupId(OverlayKey(i));
00071     send(msg, "to_lowerTier");
00072 }

void ScribeTest::handleMCast ( ALMMulticastMessage *  mcast  )  [protected]

00075 {
00076     parentModule()->parentModule()->bubble("Received message!");
00077     EV << "App received data message for group: " << mcast->getGroupId() << "\n";
00078     delete mcast;
00079 }


Member Data Documentation

cMessage* ScribeTest::timer [protected]

int ScribeTest::groupNum [protected]


The documentation for this class was generated from the following files:
Generated on Thu Apr 17 13:19:30 2008 for ITM OverSim by  doxygen 1.5.3