Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

OSPF::NeighborStateExchangeStart Class Reference

#include <OSPFNeighborStateExchangeStart.h>

Inheritance diagram for OSPF::NeighborStateExchangeStart:

OSPF::NeighborState List of all members.

Public Member Functions

virtual void ProcessEvent (Neighbor *neighbor, Neighbor::NeighborEventType event)
virtual Neighbor::NeighborStateType GetState (void) const

Member Function Documentation

virtual Neighbor::NeighborStateType OSPF::NeighborStateExchangeStart::GetState void   )  const [inline, virtual]
 

Implements OSPF::NeighborState.

00012 { return Neighbor::ExchangeStartState; }

void OSPF::NeighborStateExchangeStart::ProcessEvent Neighbor neighbor,
Neighbor::NeighborEventType  event
[virtual]
 

00012 {
00013     if ((event == OSPF::Neighbor::KillNeighbor) || (event == OSPF::Neighbor::LinkDown)) {
00014         MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler ();
00015         neighbor->Reset ();
00016         messageHandler->ClearTimer (neighbor->GetInactivityTimer ());
00017         ChangeState (neighbor, new OSPF::NeighborStateDown, this);
00018     }
00019     if (event == OSPF::Neighbor::InactivityTimer) {
00020         neighbor->Reset ();
00021         if (neighbor->GetInterface ()->GetType () == OSPF::Interface::NBMA) {
00022             MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler ();
00023             messageHandler->StartTimer (neighbor->GetPollTimer (), neighbor->GetInterface ()->GetPollInterval ());
00024         }
00025         ChangeState (neighbor, new OSPF::NeighborStateDown, this);
00026     }
00027     if (event == OSPF::Neighbor::OneWayReceived) {
00028         neighbor->Reset ();
00029         ChangeState (neighbor, new OSPF::NeighborStateInit, this);
00030     }
00031     if (event == OSPF::Neighbor::HelloReceived) {
00032         MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler ();
00033         messageHandler->ClearTimer (neighbor->GetInactivityTimer ());
00034         messageHandler->StartTimer (neighbor->GetInactivityTimer (), neighbor->GetRouterDeadInterval ());
00035     }
00036     if (event == OSPF::Neighbor::IsAdjacencyOK) {
00037         if (!neighbor->NeedAdjacency ()) {
00038             neighbor->Reset ();
00039             ChangeState (neighbor, new OSPF::NeighborStateTwoWay, this);
00040         }
00041     }
00042     if (event == OSPF::Neighbor::DDRetransmissionTimer) {
00043         MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler ();
00044         neighbor->RetransmitDatabaseDescriptionPacket ();
00045         messageHandler->StartTimer (neighbor->GetDDRetransmissionTimer (), neighbor->GetInterface ()->GetRetransmissionInterval ());
00046     }
00047     if (event == OSPF::Neighbor::NegotiationDone) {
00048         neighbor->CreateDatabaseSummary ();
00049         neighbor->SendDatabaseDescriptionPacket ();
00050         MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler ();
00051         messageHandler->ClearTimer (neighbor->GetDDRetransmissionTimer ());
00052         ChangeState (neighbor, new OSPF::NeighborStateExchange, this);
00053     }
00054 }


The documentation for this class was generated from the following files:
Generated on Sat Apr 1 20:52:25 2006 for INET Framework for OMNeT++/OMNEST by  doxygen 1.4.1