Inheritance diagram for Tic8:

Public Member Functions | |
| Tic8 () | |
| virtual | ~Tic8 () |
Protected Member Functions | |
| virtual cMessage * | generateNewMessage () |
| virtual void | sendCopyOf (cMessage *msg) |
| virtual void | initialize () |
| virtual void | handleMessage (cMessage *msg) |
Private Attributes | |
| double | timeout |
| cMessage * | timeoutEvent |
| int | seq |
| cMessage * | message |
|
|
00043 {
00044 timeoutEvent = message = NULL;
00045 }
|
|
|
00048 {
00049 cancelAndDelete(timeoutEvent);
00050 delete message;
00051 }
|
|
|
00096 {
00097 // Generate a message with a different name every time.
00098 char msgname[20];
00099 sprintf(msgname, "tic-%d", ++seq);
00100 cMessage *msg = new cMessage(msgname);
00101 return msg;
00102 }
|
|
|
Reimplemented from cSimpleModule. 00068 {
00069 if (msg==timeoutEvent)
00070 {
00071 // If we receive the timeout event, that means the packet hasn't
00072 // arrived in time and we have to re-send it.
00073 ev << "Timeout expired, resending message and restarting timer\n";
00074 sendCopyOf(message);
00075 scheduleAt(simTime()+timeout, timeoutEvent);
00076 }
00077 else // message arrived
00078 {
00079 // Acknowledgement received!
00080 ev << "Received: " << msg->name() << "\n";
00081 delete msg;
00082
00083 // Also delete the stored message and cancel the timeout event.
00084 ev << "Timer cancelled.\n";
00085 cancelEvent(timeoutEvent);
00086 delete message;
00087
00088 // Ready to send another one.
00089 message = generateNewMessage();
00090 sendCopyOf(message);
00091 scheduleAt(simTime()+timeout, timeoutEvent);
00092 }
00093 }
|
|
|
Reimplemented from cModule. 00054 {
00055 // Initialize variables.
00056 seq = 0;
00057 timeout = 1.0;
00058 timeoutEvent = new cMessage("timeoutEvent");
00059
00060 // Generate and send initial message.
00061 ev << "Sending initial message\n";
00062 message = generateNewMessage();
00063 sendCopyOf(message);
00064 scheduleAt(simTime()+timeout, timeoutEvent);
00065 }
|
|
|
00105 {
00106 // Duplicate message and send the copy.
00107 cMessage *copy = (cMessage *) msg->dup();
00108 send(copy, "out");
00109 }
|
|
|
|
|
|
|
|
|
|
|
|
|
1.4.1