#include <OSPFNeighborStateAttempt.h>
Inheritance diagram for OSPF::NeighborStateAttempt:
Public Member Functions | |
virtual void | ProcessEvent (Neighbor *neighbor, Neighbor::NeighborEventType event) |
virtual Neighbor::NeighborStateType | GetState (void) const |
|
Implements OSPF::NeighborState. 00012 { return Neighbor::AttemptState; }
|
|
00010 { 00011 if ((event == OSPF::Neighbor::KillNeighbor) || (event == OSPF::Neighbor::LinkDown)) { 00012 MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler (); 00013 neighbor->Reset (); 00014 messageHandler->ClearTimer (neighbor->GetInactivityTimer ()); 00015 ChangeState (neighbor, new OSPF::NeighborStateDown, this); 00016 } 00017 if (event == OSPF::Neighbor::InactivityTimer) { 00018 neighbor->Reset (); 00019 if (neighbor->GetInterface ()->GetType () == OSPF::Interface::NBMA) { 00020 MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler (); 00021 messageHandler->StartTimer (neighbor->GetPollTimer (), neighbor->GetInterface ()->GetPollInterval ()); 00022 } 00023 ChangeState (neighbor, new OSPF::NeighborStateDown, this); 00024 } 00025 if (event == OSPF::Neighbor::HelloReceived) { 00026 MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler (); 00027 messageHandler->ClearTimer (neighbor->GetInactivityTimer ()); 00028 messageHandler->StartTimer (neighbor->GetInactivityTimer (), neighbor->GetRouterDeadInterval ()); 00029 ChangeState (neighbor, new OSPF::NeighborStateInit, this); 00030 } 00031 }
|