blob: 4b16cc16a5ad1be6b072e994cb6c3e962edbb02d [file] [log] [blame]
Steve DiBenedetto5b433982014-01-29 17:14:27 -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#ifndef NFD_MGMT_INTERNAL_FACE_HPP
8#define NFD_MGMT_INTERNAL_FACE_HPP
9
10#include "face/face.hpp"
11#include "app-face.hpp"
12
13namespace nfd {
14
Steve DiBenedetto042bfe92014-01-30 15:05:08 -070015class FibManager;
16
Steve DiBenedetto5b433982014-01-29 17:14:27 -070017class InternalFace : public Face, public AppFace
18{
19public:
20
Steve DiBenedetto042bfe92014-01-30 15:05:08 -070021 explicit
22 InternalFace(FibManager& manager);
Steve DiBenedetto5b433982014-01-29 17:14:27 -070023
24 // Overridden Face methods for forwarder
25
26 virtual void
27 sendInterest(const Interest& interest);
28
29 virtual void
30 sendData(const Data& data);
31
32 // Methods implementing AppFace interface. Do not invoke from forwarder.
33
34 virtual void
35 setInterestFilter(const Name& filter,
36 OnInterest onInterest);
37
38 virtual void
39 put(const Data& data);
40
41 virtual
42 ~InternalFace();
43
44private:
45
46 // void
47 // onConfig(ConfigFile::Node section, bool isDryRun);
48
49 std::map<Name, OnInterest> m_interestFilters;
Steve DiBenedetto042bfe92014-01-30 15:05:08 -070050 FibManager& m_fibManager; // for mock only
Steve DiBenedetto5b433982014-01-29 17:14:27 -070051
52};
53
54} // namespace nfd
55
56#endif //NFD_MGMT_INTERNAL_FACE_HPP