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
key-locator.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
22
#ifndef NDN_KEY_LOCATOR_HPP
23
#define NDN_KEY_LOCATOR_HPP
24
25
#include "
encoding/encoding-buffer.hpp
"
26
#include "
name.hpp
"
27
28
namespace
ndn
{
29
30
class
KeyLocator
31
{
32
public
:
33
class
Error
:
public
tlv::Error
34
{
35
public
:
36
explicit
37
Error
(
const
std::string& what)
38
: tlv::
Error
(what)
39
{
40
}
41
};
42
43
enum
Type
{
46
KeyLocator_None
= 65535,
49
KeyLocator_Name
= 0,
52
KeyLocator_KeyDigest
= 1,
55
KeyLocator_Unknown
= 255
56
};
57
58
public
:
// constructors
61
KeyLocator
();
62
65
explicit
66
KeyLocator
(
const
Block
& wire);
67
71
KeyLocator
(
const
Name
&
name
);
72
73
public
:
// encode and decode
77
template
<encoding::Tag TAG>
78
size_t
79
wireEncode
(EncodingImpl<TAG>& encoder)
const
;
80
83
const
Block
&
84
wireEncode
()
const
;
85
90
void
91
wireDecode
(
const
Block
& wire);
92
93
public
:
// attributes
94
bool
95
empty
()
const
96
{
97
return
m_type ==
KeyLocator_None
;
98
}
99
100
Type
101
getType
()
const
102
{
103
return
m_type;
104
}
105
110
KeyLocator
&
111
clear
();
112
116
const
Name
&
117
getName
()
const
;
118
123
KeyLocator
&
124
setName
(
const
Name
&
name
);
125
129
const
Block
&
130
getKeyDigest
()
const
;
131
137
KeyLocator
&
138
setKeyDigest
(
const
Block
& keyDigest);
139
144
KeyLocator
&
145
setKeyDigest
(
const
ConstBufferPtr
& keyDigest);
146
147
public
:
// EqualityComparable concept
148
bool
149
operator==
(
const
KeyLocator
& other)
const
;
150
151
bool
152
operator!=
(
const
KeyLocator
& other)
const
153
{
154
return
!this->
operator==
(other);
155
}
156
157
private
:
158
Type
m_type;
159
Name
m_name;
160
Block
m_keyDigest;
161
162
mutable
Block
m_wire;
163
};
164
165
NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS
(
KeyLocator
);
166
167
std::ostream&
168
operator<<
(std::ostream& os,
const
KeyLocator
& keyLocator);
169
170
}
// namespace ndn
171
172
#endif // NDN_KEY_LOCATOR_HPP
ndn::KeyLocator::Type
Type
Definition:
key-locator.hpp:43
ndn
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-strategy-choice-helper.hpp:34
ndn::operator<<
std::ostream & operator<<(std::ostream &os, const Data &data)
Definition:
data.cpp:274
ndn::KeyLocator::setName
KeyLocator & setName(const Name &name)
set Name element
Definition:
key-locator.cpp:144
ndn::KeyLocator::wireDecode
void wireDecode(const Block &wire)
decode from wire encoding
Definition:
key-locator.cpp:96
ndn::KeyLocator::setKeyDigest
KeyLocator & setKeyDigest(const Block &keyDigest)
set KeyDigest element
Definition:
key-locator.cpp:162
ndn::Block
Represents a TLV element of NDN packet format.
Definition:
block.hpp:42
ndn::KeyLocator::KeyLocator
KeyLocator()
construct an empty KeyLocator
Definition:
key-locator.cpp:35
ndn::KeyLocator::KeyLocator_Name
indicates KeyLocator contains a Name
Definition:
key-locator.hpp:49
ndn::KeyLocator::Error::Error
Error(const std::string &what)
Definition:
key-locator.hpp:37
ndn::KeyLocator::getName
const Name & getName() const
get Name element
Definition:
key-locator.cpp:135
ndn::KeyLocator::getKeyDigest
const Block & getKeyDigest() const
get KeyDigest element
Definition:
key-locator.cpp:153
ndn::KeyLocator::getType
Type getType() const
Definition:
key-locator.hpp:101
ndn::KeyLocator::empty
bool empty() const
Definition:
key-locator.hpp:95
ndn::KeyLocator::KeyLocator_None
indicates KeyLocator is empty (internal use only)
Definition:
key-locator.hpp:46
ndn::Name
Represents an absolute name.
Definition:
name.hpp:42
ndn::KeyLocator::Error
Definition:
key-locator.hpp:33
ndn::KeyLocator::KeyLocator_Unknown
indicates KeyLocator contains an unknown element
Definition:
key-locator.hpp:55
ndn::NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS
NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS(Exclude)
ndn::KeyLocator::clear
KeyLocator & clear()
clear KeyLocator
Definition:
key-locator.cpp:125
ndn::KeyLocator::wireEncode
const Block & wireEncode() const
Definition:
key-locator.cpp:80
ndn::KeyLocator
Definition:
key-locator.hpp:30
ndn::KeyLocator::KeyLocator_KeyDigest
indicates KeyLocator contains a KeyDigest
Definition:
key-locator.hpp:52
name.hpp
ndn::KeyLocator::operator==
bool operator==(const KeyLocator &other) const
Definition:
key-locator.cpp:184
ndn::KeyLocator::operator!=
bool operator!=(const KeyLocator &other) const
Definition:
key-locator.hpp:152
ndn::name
Definition:
name-component.cpp:37
ndn::tlv::Error
represents an error in TLV encoding or decoding
Definition:
tlv.hpp:50
encoding-buffer.hpp
ndn::ConstBufferPtr
shared_ptr< const Buffer > ConstBufferPtr
Definition:
buffer.hpp:89
ndnSIM
ndn-cxx
src
key-locator.hpp
Generated on Thu Nov 2 2017 03:30:28 for ndnSIM by
1.8.11