OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
bfd_state_machine.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 CodiLime, Inc. All rights reserved.
3  */
4 
5 #ifndef SRC_BFD_STATE_MACHINE_H_
6 #define SRC_BFD_STATE_MACHINE_H_
7 
8 #include "bfd/bfd_common.h"
9 
10 #include <boost/function.hpp>
11 #include <boost/optional.hpp>
12 #include <io/event_manager.h>
13 
14 namespace BFD {
15 class Session;
16 class StateMachine {
17  public:
18  virtual void ProcessRemoteState(BFD::BFDState state) = 0;
19  virtual void ProcessTimeout() = 0;
20  virtual BFD::BFDState GetState() = 0;
21  virtual void SetCallback(boost::optional<ChangeCb> cb) = 0;
22  virtual ~StateMachine() {}
23 };
24 
25 StateMachine *CreateStateMachine(EventManager *evm, Session *session);
26 } // namespace BFD
27 
28 #endif // SRC_BFD_STATE_MACHINE_H_
virtual BFD::BFDState GetState()=0
StateMachine * CreateStateMachine(EventManager *evm, Session *session)
virtual void ProcessTimeout()=0
virtual void ProcessRemoteState(BFD::BFDState state)=0
BFDState
Definition: bfd_common.h:21
virtual void SetCallback(boost::optional< ChangeCb > cb)=0
static EventManager evm