Tic7 Class Reference

Inheritance diagram for Tic7:

cSimpleModule cModule cDefaultList cObject cPolymorphic List of all members.

Detailed Description

Let us take a step back, and remove random delaying from the code. We'll leave in, however, losing the packet with a small probability. And, we'll we do something very common in telecommunication networks: if the packet doesn't arrive within a certain period, we'll assume it was lost and create another one. The timeout will be handled using (what else?) a self-message.


Public Member Functions

 Tic7 ()
virtual ~Tic7 ()

Protected Member Functions

virtual void initialize ()
virtual void handleMessage (cMessage *msg)

Private Attributes

double timeout
cMessagetimeoutEvent


Constructor & Destructor Documentation

Tic7::Tic7  ) 
 

00041 {
00042     timeoutEvent = NULL;
00043 }

Tic7::~Tic7  )  [virtual]
 

00046 {
00047     cancelAndDelete(timeoutEvent);
00048 }


Member Function Documentation

void Tic7::handleMessage cMessage msg  )  [protected, virtual]
 

Reimplemented from cSimpleModule.

00064 {
00065     if (msg==timeoutEvent)
00066     {
00067         // If we receive the timeout event, that means the packet hasn't
00068         // arrived in time and we have to re-send it.
00069         ev << "Timeout expired, resending message and restarting timer\n";
00070         cMessage *msg = new cMessage("tictocMsg");
00071         send(msg, "out");
00072         scheduleAt(simTime()+timeout, timeoutEvent);
00073     }
00074     else // message arrived
00075     {
00076         // Acknowledgement received -- delete the stored message and cancel
00077         // the timeout event.
00078         ev << "Timer cancelled.\n";
00079         cancelEvent(timeoutEvent);
00080 
00081         // Ready to send another one.
00082         cMessage *msg = new cMessage("tictocMsg");
00083         send(msg, "out");
00084         scheduleAt(simTime()+timeout, timeoutEvent);
00085     }
00086 }

void Tic7::initialize  )  [protected, virtual]
 

Reimplemented from cModule.

00051 {
00052     // Initialize variables.
00053     timeout = 1.0;
00054     timeoutEvent = new cMessage("timeoutEvent");
00055 
00056     // Generate and send initial message.
00057     ev << "Sending initial message\n";
00058     cMessage *msg = new cMessage("tictocMsg");
00059     send(msg, "out");
00060     scheduleAt(simTime()+timeout, timeoutEvent);
00061 }


Member Data Documentation

double Tic7::timeout [private]
 

cMessage* Tic7::timeoutEvent [private]
 


The documentation for this class was generated from the following file:
Generated on Sat Oct 21 17:48:02 2006 for Tictoc Tutorial by  doxygen 1.4.6