Public Member Functions | Public Attributes

I3Multicast Class Reference

Simple module to test I3 multicast capabilities. More...

Inheritance diagram for I3Multicast:
I3BaseApp

List of all members.

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, cPacket *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

Detailed Description

Simple module to test I3 multicast capabilities.

All nodes register the same identifier, then one node sends a message to that identifier. All participating nodes receive the packet .

Definition at line 33 of file I3Multicast.cc.


Member Function Documentation

void I3Multicast::deliver ( I3Trigger trigger,
I3IdentifierStack stack,
cPacket *  msg 
) [virtual]

Delivers packets coming from I3 - should be overwritten by application.

Parameters:
trigger Application trigger to which the packet was sent
stack Identifier stack passed from I3
msg Arriving message

Reimplemented from I3BaseApp.

Definition at line 58 of file I3Multicast.cc.

{
    getParentModule()->bubble("Got a message!");
    delete msg;
}

void I3Multicast::handleTimerEvent ( cMessage *  msg  )  [virtual]

Handles timers - should be overwritten by application.

Parameters:
msg Timer to be handled

Reimplemented from I3BaseApp.

Definition at line 64 of file I3Multicast.cc.

{
    if (msg == sendPacketTimer) {
        cPacket *cmsg = new cPacket("woot");
        I3Identifier id("whee");

        getParentModule()->bubble("Sending message!");
        sendPacket(id, cmsg);
        scheduleAt(simTime() + 20, sendPacketTimer);
    } else delete msg;
}

void I3Multicast::initializeApp ( int  stage  )  [virtual]

App initialization - should be overwritten by application.

I3 related commands should go in initializeI3.

Parameters:
stage Initialization stage passed from initialize()

Reimplemented from I3BaseApp.

Definition at line 44 of file I3Multicast.cc.

{
}

void I3Multicast::initializeI3 (  )  [virtual]

Application I3 initialize - should be overwritten by application.

Reimplemented from I3BaseApp.

Definition at line 48 of file I3Multicast.cc.

{
    sendPacketTimer = new cMessage("packet timer");
    scheduleAt(simTime() + 20, sendPacketTimer);

    I3Identifier identifier("whee");
    insertTrigger(identifier);
}


Member Data Documentation

Definition at line 36 of file I3Multicast.cc.

Referenced by handleTimerEvent(), and initializeI3().


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