blob: e84deea83445a97499b8ee69a1a3bf9062eb6fcf [file] [log] [blame]
Vince Lehman942eb7b2014-10-02 10:09:27 -05001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/**
3 * Copyright (c) 2014 University of Memphis,
4 * Regents of the University of California
5 *
6 * This file is part of NLSR (Named-data Link State Routing).
7 * See AUTHORS.md for complete list of NLSR authors and contributors.
8 *
9 * NLSR is free software: you can redistribute it and/or modify it under the terms
10 * of the GNU General Public License as published by the Free Software Foundation,
11 * either version 3 of the License, or (at your option) any later version.
12 *
13 * NLSR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
14 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along with
18 * NLSR, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
19 *
20 *
21 **/
22
23#ifndef NLSR_TEST_CONTROL_COMMANDS_HPP
24#define NLSR_TEST_CONTROL_COMMANDS_HPP
25
26#include <ndn-cxx/interest.hpp>
27#include <ndn-cxx/management/nfd-control-parameters.hpp>
28
29namespace nlsr {
30namespace test {
31
32inline void
33extractParameters(const ndn::Interest& interest,
34 ndn::Name::Component& verb,
35 ndn::nfd::ControlParameters& extractedParameters,
36 const ndn::Name& commandPrefix)
37{
38 const ndn::Name& name = interest.getName();
39 verb = name[commandPrefix.size()];
40 const ndn::Name::Component& parameterComponent = name[commandPrefix.size() + 1];
41
42 ndn::Block rawParameters = parameterComponent.blockFromValue();
43 extractedParameters.wireDecode(rawParameters);
44}
45
46inline void
47extractRibCommandParameters(const ndn::Interest& interest, ndn::Name::Component& verb,
48 ndn::nfd::ControlParameters& extractedParameters)
49{
50 extractParameters(interest, verb, extractedParameters, ndn::Name("/localhost/nfd/rib"));
51}
52
53} // namespace test
54} // namespace nlsr
55
56#endif // NLSR_TEST_CONTROL_COMMANDS_HPP