NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.3: NDN, CCN, CCNx, content centric networks
API Documentation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
ndnSIM
ndnSIM documentation
All Attributes
All GlobalValues
All LogComponents
All TraceSources
Todo List
Deprecated List
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
cache-policy.hpp
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2013-2017 Regents of the University of California.
4
*
5
* This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
6
*
7
* ndn-cxx library is free software: you can redistribute it and/or modify it under the
8
* terms of the GNU Lesser General Public License as published by the Free Software
9
* Foundation, either version 3 of the License, or (at your option) any later version.
10
*
11
* ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
12
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
14
*
15
* You should have received copies of the GNU General Public License and GNU Lesser
16
* General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see
17
* <http://www.gnu.org/licenses/>.
18
*
19
* See AUTHORS.md for complete list of ndn-cxx authors and contributors.
20
*
21
* @author Eric Newberry <enewberry@email.arizona.edu>
22
*/
23
24
#ifndef NDN_CXX_LP_CACHE_POLICY_HPP
25
#define NDN_CXX_LP_CACHE_POLICY_HPP
26
27
#include "../encoding/encoding-buffer.hpp"
28
#include "
tlv.hpp
"
29
30
namespace
ndn
{
31
namespace
lp
{
32
36
enum class
CachePolicyType
{
37
NONE
= 0,
38
NO_CACHE
= 1
39
};
40
41
std::ostream&
42
operator<<
(std::ostream& os,
CachePolicyType
policy);
43
47
class
CachePolicy
48
{
49
public
:
50
class
Error
:
public
ndn::tlv::Error
51
{
52
public
:
53
explicit
54
Error
(
const
std::string& what)
55
:
ndn
::tlv::
Error
(what)
56
{
57
}
58
};
59
60
CachePolicy
();
61
62
explicit
63
CachePolicy
(
const
Block
& block);
64
70
template
<encoding::Tag TAG>
71
size_t
72
wireEncode(EncodingImpl<TAG>& encoder)
const
;
73
77
const
Block
&
78
wireEncode()
const
;
79
83
void
84
wireDecode(
const
Block
& wire);
85
86
public
:
// policy type
91
CachePolicyType
92
getPolicy()
const
;
93
98
CachePolicy
&
99
setPolicy(
CachePolicyType
policy);
100
101
private
:
102
CachePolicyType
m_policy;
103
mutable
Block
m_wire;
104
};
105
106
NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS
(
CachePolicy
);
107
108
}
// namespace lp
109
}
// namespace ndn
110
111
#endif // NDN_CXX_LP_CACHE_POLICY_HPP
ndn::lp::NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS
NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS(CachePolicy)
ndn::lp::CachePolicy
represents a CachePolicy header field
Definition:
cache-policy.hpp:47
ndn::lp::CachePolicyType::NO_CACHE
ndn
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-strategy-choice-helper.hpp:34
ndn::lp::CachePolicy::Error
Definition:
cache-policy.hpp:50
ndn::lp::CachePolicy::Error::Error
Error(const std::string &what)
Definition:
cache-policy.hpp:54
ndn::Block
Represents a TLV element of NDN packet format.
Definition:
block.hpp:42
ndn::lp::tlv::CachePolicy
Definition:
tlv.hpp:42
tlv.hpp
ndn::lp::CachePolicyType::NONE
ndn::lp::CachePolicyType
CachePolicyType
indicates the cache policy applied to a Data packet
Definition:
cache-policy.hpp:36
ndn::lp::operator<<
std::ostream & operator<<(std::ostream &os, CachePolicyType policy)
Definition:
cache-policy.cpp:31
ndn::lp
Definition:
cache-policy.cpp:28
ndn::tlv::Error
represents an error in TLV encoding or decoding
Definition:
tlv.hpp:50
ndnSIM
ndn-cxx
src
lp
cache-policy.hpp
Generated on Thu Nov 2 2017 03:30:28 for ndnSIM by
1.8.11