OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
route.cc
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #include "route/route.h"
6 
7 #include "base/time_util.h"
8 
10 }
11 
13 }
14 
15 // Selected path
16 const Path *Route::front() const {
17  PathList::const_iterator it = path_.begin();
18  if (it == path_.end())
19  return NULL;
20  return it.operator->();
21 }
22 
23 // Insert a path
24 void Route::insert(const Path *ipath) {
25  Path *path = const_cast<Path *> (ipath);
26 
28  path_.push_back(*path);
29 }
30 
31 // Remove a path
32 void Route::remove(const Path *ipath) {
33  Path *path = const_cast<Path *> (ipath);
34 
36  PathList::const_iterator eraseIt = path_.iterator_to(*path);
37  path_.erase(eraseIt);
38 }
39 
40 void Route::Sort(Compare compare, const Path *prev_front) {
41  path_.sort(compare);
42 
44  // If the best path changes, update route's time stamp.
45  if (prev_front != front()) {
47  }
48 }
void Sort(Compare compare, const Path *prev_front)
Definition: route.cc:40
void set_last_update_at_to_now()
Definition: db_entry.cc:104
void set_time_stamp_usecs(uint64_t time_stamp_usecs)
Definition: path.h:18
void set_last_change_at_to_now()
Definition: db_entry.cc:96
void remove(const Path *path)
Definition: route.cc:32
PathList path_
Definition: route.h:56
virtual ~Route()
Definition: route.cc:12
Definition: path.h:10
const Path * front() const
Definition: route.cc:16
static uint64_t UTCTimestampUsec()
Definition: time_util.h:13
Route()
Definition: route.cc:9
static int compare(const Type &lhs, const Type &rhs)
void insert(const Path *path)
Definition: route.cc:24