blob: 4d611f923f483000805e6252441a5da249d13428 [file] [log] [blame]
Junxiao Shicbba04c2014-01-26 14:21:22 -07001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/**
3 * Copyright (C) 2014 Named Data Networking Project
4 * See COPYING for copyright and distribution information.
5 */
6
7#include "pit-face-record.hpp"
8
Alexander Afanasyev18bbf812014-01-29 01:40:23 -08009namespace nfd {
Junxiao Shicbba04c2014-01-26 14:21:22 -070010namespace pit {
11
12FaceRecord::FaceRecord(shared_ptr<Face> face)
13 : m_face(face)
14 , m_lastNonce(0)
Alexander Afanasyeveb3197f2014-03-17 19:28:18 -070015 , m_lastRenewed(time::steady_clock::TimePoint::min())
16 , m_expiry(time::steady_clock::TimePoint::min())
Junxiao Shicbba04c2014-01-26 14:21:22 -070017{
18}
19
20FaceRecord::FaceRecord(const FaceRecord& other)
21 : m_face(other.m_face)
22 , m_lastNonce(other.m_lastNonce)
23 , m_lastRenewed(other.m_lastRenewed)
24 , m_expiry(other.m_expiry)
25{
26}
27
28void
29FaceRecord::update(const Interest& interest)
30{
31 m_lastNonce = interest.getNonce();
Alexander Afanasyeveb3197f2014-03-17 19:28:18 -070032 m_lastRenewed = time::steady_clock::now();
Junxiao Shi57f0f312014-03-16 11:52:20 -070033
Alexander Afanasyeveb3197f2014-03-17 19:28:18 -070034 static const time::milliseconds DEFAULT_INTEREST_LIFETIME = time::milliseconds(4000);
35 time::milliseconds lifetime = interest.getInterestLifetime();
36 if (lifetime < time::milliseconds::zero()) {
Junxiao Shi57f0f312014-03-16 11:52:20 -070037 lifetime = DEFAULT_INTEREST_LIFETIME;
38 }
39 m_expiry = m_lastRenewed + time::milliseconds(lifetime);
Junxiao Shicbba04c2014-01-26 14:21:22 -070040}
41
42
43} // namespace pit
Alexander Afanasyev18bbf812014-01-29 01:40:23 -080044} // namespace nfd