OSPF::InterfaceStateDesignatedRouter Class Reference

#include <OSPFInterfaceStateDesignatedRouter.h>

Inheritance diagram for OSPF::InterfaceStateDesignatedRouter:

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::InterfaceStateDesignatedRouter::GetState ( void   )  const [inline, virtual]

Implements OSPF::InterfaceState.

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

Implements OSPF::InterfaceState.

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


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