OpenSDN source code
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
}
DBEntryBase::set_last_update_at_to_now
void set_last_update_at_to_now()
Definition:
db_entry.cc:104
DBEntryBase::set_last_change_at_to_now
void set_last_change_at_to_now()
Definition:
db_entry.cc:96
Path
Definition:
path.h:10
Path::set_time_stamp_usecs
void set_time_stamp_usecs(uint64_t time_stamp_usecs)
Definition:
path.h:18
Route::Sort
void Sort(Compare compare, const Path *prev_front)
Definition:
route.cc:40
Route::Route
Route()
Definition:
route.cc:9
Route::~Route
virtual ~Route()
Definition:
route.cc:12
Route::front
const Path * front() const
Definition:
route.cc:16
Route::insert
void insert(const Path *path)
Definition:
route.cc:24
Route::remove
void remove(const Path *path)
Definition:
route.cc:32
Route::path_
PathList path_
Definition:
route.h:56
route.h
compare
static int compare(const Type &lhs, const Type &rhs)
Definition:
service_instance.cc:405
time_util.h
UTCTimestampUsec
static uint64_t UTCTimestampUsec()
Definition:
time_util.h:13
contrail
controller
src
route
route.cc
Generated by
1.9.1