Inheritance diagram for Txc11:

Public Member Functions | |
| Module_Class_Members (Txc11, cSimpleModule, 0) | |
| virtual TicTocMsg11 * | generateMessage () |
| virtual void | forwardMessage (TicTocMsg11 *msg) |
| virtual void | updateDisplay () |
| virtual void | initialize () |
| virtual void | handleMessage (cMessage *msg) |
Protected Attributes | |
| long | numSent |
| long | numReceived |
|
|
00106 {
00107 // Increment hop count.
00108 msg->setHopCount(msg->getHopCount()+1);
00109
00110 // Same routing as before: random gate.
00111 int n = gate("out")->size();
00112 int k = intuniform(0,n-1);
00113
00114 ev << "Forwarding message " << msg << " on port out[" << k << "]\n";
00115 send(msg, "out", k);
00116 }
|
|
|
00088 {
00089 // Produce source and destination addresses.
00090 int src = index(); // our module index
00091 int n = size(); // module vector size
00092 int dest = intuniform(0,n-2);
00093 if (dest>=src) dest++;
00094
00095 char msgname[20];
00096 sprintf(msgname, "tic-%d-to-%d", src, dest);
00097
00098 // Create message object and set source and destination field.
00099 TicTocMsg11 *msg = new TicTocMsg11(msgname);
00100 msg->setSource(src);
00101 msg->setDestination(dest);
00102 return msg;
00103 }
|
|
|
Reimplemented from cSimpleModule. 00058 {
00059 TicTocMsg11 *ttmsg = check_and_cast<TicTocMsg11 *>(msg);
00060
00061 if (ttmsg->getDestination()==index())
00062 {
00063 // Message arrived
00064 int hopcount = ttmsg->getHopCount();
00065 ev << "Message " << ttmsg << " arrived after " << hopcount << " hops.\n";
00066 numReceived++;
00067 delete ttmsg;
00068 bubble("ARRIVED, starting new one!");
00069
00070 // Generate another one.
00071 ev << "Generating another message: ";
00072 TicTocMsg11 *newmsg = generateMessage();
00073 ev << newmsg << endl;
00074 forwardMessage(newmsg);
00075 numSent++;
00076
00077 if (ev.isGUI())
00078 updateDisplay();
00079 }
00080 else
00081 {
00082 // We need to forward the message.
00083 forwardMessage(ttmsg);
00084 }
00085 }
|
|
|
Reimplemented from cModule. 00041 {
00042 // Initialize variables
00043 numSent = 0;
00044 numReceived = 0;
00045 WATCH(numSent);
00046 WATCH(numReceived);
00047
00048 // Module 0 sends the first message
00049 if (index()==0)
00050 {
00051 // Boot the process scheduling the initial message as a self-message.
00052 TicTocMsg11 *msg = generateMessage();
00053 scheduleAt(0.0, msg);
00054 }
00055 }
|
|
||||||||||||||||
|
|
|
|
00119 {
00120 char buf[40];
00121 sprintf(buf, "rcvd: %ld sent: %ld", numReceived, numSent);
00122 displayString().setTagArg("t",0,buf);
00123 }
|
|
|
|
|
|
|
1.3.9.1