INET Framework for OMNeT++/OMNEST
AnsaOSPF::NeighborStateDown Class Reference

#include <AnsaOSPFNeighborStateDown.h>

Inheritance diagram for AnsaOSPF::NeighborStateDown:
AnsaOSPF::NeighborState

List of all members.

Public Member Functions

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

Detailed Description

Definition at line 8 of file AnsaOSPFNeighborStateDown.h.


Member Function Documentation

virtual Neighbor::NeighborStateType AnsaOSPF::NeighborStateDown::GetState ( void  ) const [inline, virtual]

Implements AnsaOSPF::NeighborState.

Definition at line 12 of file AnsaOSPFNeighborStateDown.h.

{ return Neighbor::DownState; }

Implements AnsaOSPF::NeighborState.

Definition at line 9 of file AnsaOSPFNeighborStateDown.cc.

{
    if (event == AnsaOSPF::Neighbor::Start) {
        MessageHandler* messageHandler = neighbor->GetInterface()->GetArea()->GetRouter()->GetMessageHandler();
        int             ttl            = (neighbor->GetInterface()->GetType() == AnsaOSPF::Interface::Virtual) ? VIRTUAL_LINK_TTL : 1;

        messageHandler->ClearTimer(neighbor->GetPollTimer());
        neighbor->GetInterface()->SendHelloPacket(neighbor->GetAddress(), ttl);
        messageHandler->StartTimer(neighbor->GetInactivityTimer(), neighbor->GetRouterDeadInterval());
        ChangeState(neighbor, new AnsaOSPF::NeighborStateAttempt, this);
    }
    if (event == AnsaOSPF::Neighbor::HelloReceived) {
        MessageHandler* messageHandler = neighbor->GetInterface()->GetArea()->GetRouter()->GetMessageHandler();
        messageHandler->ClearTimer(neighbor->GetPollTimer());
        messageHandler->StartTimer(neighbor->GetInactivityTimer(), neighbor->GetRouterDeadInterval());
        ChangeState(neighbor, new AnsaOSPF::NeighborStateInit, this);
    }
    if (event == AnsaOSPF::Neighbor::PollTimer) {
        int ttl = (neighbor->GetInterface()->GetType() == AnsaOSPF::Interface::Virtual) ? VIRTUAL_LINK_TTL : 1;
        neighbor->GetInterface()->SendHelloPacket(neighbor->GetAddress(), ttl);
        MessageHandler* messageHandler = neighbor->GetInterface()->GetArea()->GetRouter()->GetMessageHandler();
        messageHandler->StartTimer(neighbor->GetPollTimer(), neighbor->GetInterface()->GetPollInterval());
    }
}

The documentation for this class was generated from the following files: