OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
config_stale_cleaner.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef __AGENT_CONFIG_STALE_CLEANER_H_
6 #define __AGENT_CONFIG_STALE_CLEANER_H_
7 
8 #include <cmn/agent.h>
9 #include <boost/function.hpp>
10 
11 // Stale cleaner to audit & delete old configuration, on a new client connect.
12 // Waits for timeout, before cleaning the old configuration.
14 public:
15  static const uint32_t kConfigStaleTimeout = 60 * 1000;
16  typedef boost::function<void(uint32_t)> TimerCallback;
17 
18  ConfigStaleCleaner(Agent *agent, TimerCallback callback);
19  void set_callback(TimerCallback callback) { audit_callback_ = callback; }
20  virtual ~ConfigStaleCleaner();
21  virtual void StartStaleCleanTimer(int32_t version);
22  virtual bool StaleEntryTimeout(int32_t version, Timer *timer);
23  void set_timeout(uint32_t timeout) { timeout_ = timeout; }
24  uint32_t timeout() const { return timeout_; }
25  uint32_t TimersCount() const { return running_timer_list_.size(); }
26 
27 protected:
29 
30 private:
31  uint32_t timeout_;
32  // list of running audit timers (one per connect)
33  std::set<Timer *> running_timer_list_;
36 };
37 
39 public:
42  virtual bool OnInterfaceConfigStaleTimeout(int32_t version);
43 
44 private:
46 };
47 
48 #endif /* __AGENT_CONFIG_STALE_CLEANER_H_ */
void set_timeout(uint32_t timeout)
static const uint32_t kConfigStaleTimeout
uint32_t timeout() const
DISALLOW_COPY_AND_ASSIGN(InterfaceConfigStaleCleaner)
void set_callback(TimerCallback callback)
Definition: agent.h:358
virtual void StartStaleCleanTimer(int32_t version)
TimerCallback audit_callback_
boost::function< void(uint32_t)> TimerCallback
uint32_t TimersCount() const
std::set< Timer * > running_timer_list_
Definition: timer.h:54
ConfigStaleCleaner(Agent *agent, TimerCallback callback)
DISALLOW_COPY_AND_ASSIGN(ConfigStaleCleaner)
virtual bool OnInterfaceConfigStaleTimeout(int32_t version)
virtual bool StaleEntryTimeout(int32_t version, Timer *timer)