OSPF::InterfaceStateWaiting Class Reference

#include <OSPFInterfaceStateWaiting.h>

Inheritance diagram for OSPF::InterfaceStateWaiting:

OSPF::InterfaceState List of all members.

Public Member Functions

virtual void ProcessEvent (Interface *intf, Interface::InterfaceEventType event)
virtual Interface::InterfaceStateType GetState (void) const

Member Function Documentation

virtual Interface::InterfaceStateType OSPF::InterfaceStateWaiting::GetState ( void   )  const [inline, virtual]

Implements OSPF::InterfaceState.

00012 { return Interface::WaitingState; }

void OSPF::InterfaceStateWaiting::ProcessEvent ( Interface intf,
Interface::InterfaceEventType  event 
) [virtual]

Implements OSPF::InterfaceState.

00009 {
00010     if ((event == OSPF::Interface::BackupSeen) ||
00011         (event == OSPF::Interface::WaitTimer))
00012     {
00013         CalculateDesignatedRouter (intf);
00014     }
00015     if (event == OSPF::Interface::InterfaceDown) {
00016         intf->Reset ();
00017         ChangeState (intf, new OSPF::InterfaceStateDown, this);
00018     }
00019     if (event == OSPF::Interface::LoopIndication) {
00020         intf->Reset ();
00021         ChangeState (intf, new OSPF::InterfaceStateLoopback, this);
00022     }
00023     if (event == OSPF::Interface::HelloTimer) {
00024         if (intf->GetType () == OSPF::Interface::Broadcast) {
00025             intf->SendHelloPacket (OSPF::AllSPFRouters);
00026         } else {    // OSPF::Interface::NBMA
00027             unsigned long neighborCount = intf->GetNeighborCount ();
00028             int           ttl           = (intf->GetType () == OSPF::Interface::Virtual) ? VIRTUAL_LINK_TTL : 1;
00029             for (unsigned long i = 0; i < neighborCount; i++) {
00030                 OSPF::Neighbor* neighbor = intf->GetNeighbor (i);
00031                 if (neighbor->GetPriority () > 0) {
00032                     intf->SendHelloPacket (neighbor->GetAddress (), ttl);
00033                 }
00034             }
00035         }
00036         intf->GetArea ()->GetRouter ()->GetMessageHandler ()->StartTimer (intf->GetHelloTimer (), intf->GetHelloInterval ());
00037     }
00038     if (event == OSPF::Interface::AcknowledgementTimer) {
00039         intf->SendDelayedAcknowledgements ();
00040     }
00041 }


The documentation for this class was generated from the following files:
Generated on Wed Apr 4 13:20:25 2007 for INET Framework for OMNeT++/OMNEST by  doxygen 1.4.7