blob: a76b5e98920c82542d7c43d1b6ed0385bf486afc [file] [log] [blame]
Junxiao Shi0e4a1f12016-12-24 02:39:01 +00001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
Teng Liang63086442018-02-25 20:39:42 -07002/*
Davide Pesaventoe422f9e2022-06-03 01:30:23 -04003 * Copyright (c) 2014-2022, Regents of the University of California,
Junxiao Shi0e4a1f12016-12-24 02:39:01 +00004 * Arizona Board of Regents,
5 * Colorado State University,
6 * University Pierre & Marie Curie, Sorbonne University,
7 * Washington University in St. Louis,
8 * Beijing Institute of Technology,
9 * The University of Memphis.
10 *
11 * This file is part of NFD (Named Data Networking Forwarding Daemon).
12 * See AUTHORS.md for complete list of NFD authors and contributors.
13 *
14 * NFD is free software: you can redistribute it and/or modify it under the terms
15 * of the GNU General Public License as published by the Free Software Foundation,
16 * either version 3 of the License, or (at your option) any later version.
17 *
18 * NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
19 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
20 * PURPOSE. See the GNU General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License along with
23 * NFD, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
24 */
25
26#include "dummy-strategy.hpp"
27
Davide Pesaventoe422f9e2022-06-03 01:30:23 -040028namespace nfd::tests {
Junxiao Shi0e4a1f12016-12-24 02:39:01 +000029
30NFD_REGISTER_STRATEGY(DummyStrategy);
31
32void
33DummyStrategy::registerAs(const Name& strategyName)
34{
35 registerAsImpl<DummyStrategy>(strategyName);
36}
37
38Name
39DummyStrategy::getStrategyName(uint64_t version)
40{
41 return Name("/dummy-strategy").appendVersion(version);
42}
43
44DummyStrategy::DummyStrategy(Forwarder& forwarder, const Name& name)
45 : Strategy(forwarder)
Junxiao Shi0e4a1f12016-12-24 02:39:01 +000046{
47 this->setInstanceName(name);
48}
49
50void
Davide Pesavento0498ce82021-06-14 02:02:21 -040051DummyStrategy::afterReceiveInterest(const Interest& interest, const FaceEndpoint&,
Junxiao Shi0e4a1f12016-12-24 02:39:01 +000052 const shared_ptr<pit::Entry>& pitEntry)
53{
54 ++afterReceiveInterest_count;
55
56 if (interestOutFace != nullptr) {
Davide Pesavento0498ce82021-06-14 02:02:21 -040057 this->sendInterest(interest, *interestOutFace, pitEntry);
Junxiao Shi0e4a1f12016-12-24 02:39:01 +000058 }
59 else {
60 this->rejectPendingInterest(pitEntry);
61 }
62}
63
64void
Davide Pesavento0498ce82021-06-14 02:02:21 -040065DummyStrategy::afterContentStoreHit(const Data& data, const FaceEndpoint& ingress,
66 const shared_ptr<pit::Entry>& pitEntry)
Teng Liang85a36632018-03-21 05:59:34 -070067{
68 ++afterContentStoreHit_count;
69
Davide Pesavento0498ce82021-06-14 02:02:21 -040070 Strategy::afterContentStoreHit(data, ingress, pitEntry);
Teng Liang43bb2312018-03-26 04:16:42 -070071}
72
73void
Davide Pesavento0498ce82021-06-14 02:02:21 -040074DummyStrategy::beforeSatisfyInterest(const Data& data, const FaceEndpoint& ingress,
75 const shared_ptr<pit::Entry>& pitEntry)
76{
77 ++beforeSatisfyInterest_count;
78
79 Strategy::beforeSatisfyInterest(data, ingress, pitEntry);
80}
81
82void
83DummyStrategy::afterReceiveData(const Data& data, const FaceEndpoint& ingress,
84 const shared_ptr<pit::Entry>& pitEntry)
Teng Liang43bb2312018-03-26 04:16:42 -070085{
86 ++afterReceiveData_count;
87
Davide Pesavento0498ce82021-06-14 02:02:21 -040088 Strategy::afterReceiveData(data, ingress, pitEntry);
Teng Liang85a36632018-03-21 05:59:34 -070089}
90
91void
Davide Pesavento0498ce82021-06-14 02:02:21 -040092DummyStrategy::afterReceiveNack(const lp::Nack& nack, const FaceEndpoint& ingress,
Junxiao Shi0e4a1f12016-12-24 02:39:01 +000093 const shared_ptr<pit::Entry>& pitEntry)
94{
95 ++afterReceiveNack_count;
Ju Pan2feb4592019-09-16 20:56:38 +000096
Davide Pesavento0498ce82021-06-14 02:02:21 -040097 Strategy::afterReceiveNack(nack, ingress, pitEntry);
Ju Pan2feb4592019-09-16 20:56:38 +000098}
99
100void
101DummyStrategy::afterNewNextHop(const fib::NextHop& nextHop, const shared_ptr<pit::Entry>& pitEntry)
102{
103 afterNewNextHopCalls.push_back(pitEntry->getName());
104
105 Strategy::afterNewNextHop(nextHop, pitEntry);
Junxiao Shi0e4a1f12016-12-24 02:39:01 +0000106}
107
Davide Pesaventoe422f9e2022-06-03 01:30:23 -0400108} // namespace nfd::tests