All nodes register the same identifier, then one node sends a message to that identifier. All participating nodes receive the packet .
Public Member Functions | |
void | initializeApp (int stage) |
App initialization - should be overwritten by application. | |
void | initializeI3 () |
Application I3 initialize - should be overwritten by application. | |
void | deliver (I3Trigger &trigger, I3IdentifierStack &stack, cMessage *msg) |
Delivers packets coming from I3 - should be overwritten by application. | |
void | handleTimerEvent (cMessage *msg) |
Handles timers - should be overwritten by application. | |
Public Attributes | |
cMessage * | sendPacketTimer |
void I3Multicast::initializeApp | ( | int | stage | ) | [virtual] |
App initialization - should be overwritten by application.
I3 related commands should go in initializeI3.
stage | Initialization stage passed from initialize() |
Reimplemented from I3BaseApp.
void I3Multicast::initializeI3 | ( | ) | [virtual] |
Application I3 initialize - should be overwritten by application.
Reimplemented from I3BaseApp.
00046 { 00047 sendPacketTimer = new cMessage("packet timer"); 00048 scheduleAt(simulation.simTime() + 20, sendPacketTimer); 00049 00050 I3Identifier identifier("whee"); 00051 insertTrigger(identifier); 00052 }
void I3Multicast::deliver | ( | I3Trigger & | trigger, | |
I3IdentifierStack & | stack, | |||
cMessage * | msg | |||
) | [virtual] |
void I3Multicast::handleTimerEvent | ( | cMessage * | msg | ) | [virtual] |
Handles timers - should be overwritten by application.
msg | Timer to be handled |
Reimplemented from I3BaseApp.
00062 { 00063 if (msg == sendPacketTimer) { 00064 cMessage *cmsg = new cMessage("woot"); 00065 I3Identifier id("whee"); 00066 00067 parentModule()->bubble("Sending message!"); 00068 sendPacket(id, cmsg); 00069 scheduleAt(simulation.simTime() + 20, sendPacketTimer); 00070 } else delete msg; 00071 }
cMessage* I3Multicast::sendPacketTimer |
Referenced by handleTimerEvent(), and initializeI3().