OpenSDN source code
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
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
9
Route::Route
() {
10
}
11
12
Route::~Route
() {
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
27
path->
set_time_stamp_usecs
(
UTCTimestampUsec
());
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
35
path->
set_time_stamp_usecs
(
UTCTimestampUsec
());
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
43
set_last_update_at_to_now
();
44
// If the best path changes, update route's time stamp.
45
if
(prev_front !=
front
()) {
46
set_last_change_at_to_now
();
47
}
48
}
Route::Sort
void Sort(Compare compare, const Path *prev_front)
Definition:
route.cc:40
DBEntryBase::set_last_update_at_to_now
void set_last_update_at_to_now()
Definition:
db_entry.cc:104
Path::set_time_stamp_usecs
void set_time_stamp_usecs(uint64_t time_stamp_usecs)
Definition:
path.h:18
DBEntryBase::set_last_change_at_to_now
void set_last_change_at_to_now()
Definition:
db_entry.cc:96
Route::remove
void remove(const Path *path)
Definition:
route.cc:32
Route::path_
PathList path_
Definition:
route.h:56
route.h
Route::~Route
virtual ~Route()
Definition:
route.cc:12
Path
Definition:
path.h:10
Route::front
const Path * front() const
Definition:
route.cc:16
UTCTimestampUsec
static uint64_t UTCTimestampUsec()
Definition:
time_util.h:13
Route::Route
Route()
Definition:
route.cc:9
compare
static int compare(const Type &lhs, const Type &rhs)
Definition:
service_instance.cc:405
Route::insert
void insert(const Path *path)
Definition:
route.cc:24
time_util.h
contrail
controller
src
route
route.cc
Generated by
1.8.5