NS-3 based Named Data Networking (NDN) simulator
ndnSIM: NDN, CCN, CCNx, content centric networks
API Documentation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
ndnSIM
ndnSIM documentation
All TraceSources
All Attributes
All GlobalValues
All LogComponents
Todo List
Modules
Namespaces
Classes
Files
File List
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Groups
Pages
name-component.h
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
2
/*
3
* Copyright (c) 2013, Regents of the University of California
4
* Alexander Afanasyev
5
*
6
* BSD license, See the LICENSE file for more information
7
*
8
* Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
9
*/
10
11
#ifndef NDN_NAME_COMPONENT_H
12
#define NDN_NAME_COMPONENT_H
13
14
#include "blob.h"
15
16
NDN_NAMESPACE_BEGIN
17
18
namespace
name {
19
28
class
Component
:
public
Blob
29
{
30
public
:
34
Component
();
35
40
Component
(
const
std::string &uri);
41
47
Component
(std::string::const_iterator begin, std::string::const_iterator end);
48
54
Component
(
const
void
*buf,
size_t
length);
55
64
int
65
compare (
const
Component
&other)
const
;
66
72
inline
bool
73
operator <= (
const
Component
&other)
const
;
74
80
inline
bool
81
operator < (
const
Component
&other)
const
;
82
88
inline
bool
89
operator >= (
const
Component
&other)
const
;
90
96
inline
bool
97
operator > (
const
Component
&other)
const
;
98
100
// Component construction helpers //
102
108
Component
&
109
fromUri (
const
std::string &uri);
110
117
Component
&
118
fromUri (std::string::const_iterator begin, std::string::const_iterator end);
119
132
Component
&
133
fromNumber (uint64_t number);
134
152
Component
&
153
fromNumberWithMarker (uint64_t number,
unsigned
char
marker);
154
156
// helpers
158
164
std::string
165
toBlob ()
const
;
166
171
void
172
toBlob (std::ostream &os)
const
;
173
179
std::string
180
toUri ()
const
;
181
186
void
187
toUri (std::ostream &os)
const
;
188
193
uint64_t
194
toNumber ()
const
;
195
203
uint64_t
204
toNumberWithMarker (
unsigned
char
marker)
const
;
205
211
inline
uint64_t
212
toSeqNum ()
const
;
213
219
inline
uint64_t
220
toControlNum ()
const
;
221
227
inline
uint64_t
228
toBlkId ()
const
;
229
235
inline
uint64_t
236
toVersion ()
const
;
237
};
238
239
bool
240
Component::operator <= (
const
Component
&other)
const
241
{
242
return
(compare (other) <= 0);
243
}
244
245
bool
246
Component::operator < (
const
Component
&other)
const
247
{
248
return
(compare (other) < 0);
249
}
250
251
bool
252
Component::operator >= (
const
Component
&other)
const
253
{
254
return
(compare (other) >= 0);
255
}
256
257
bool
258
Component::operator > (
const
Component
&other)
const
259
{
260
return
(compare (other) > 0);
261
}
262
263
inline
uint64_t
264
Component::toSeqNum ()
const
265
{
266
return
toNumberWithMarker (0x00);
267
}
268
269
inline
uint64_t
270
Component::toControlNum ()
const
271
{
272
return
toNumberWithMarker (0xC1);
273
}
274
275
inline
uint64_t
276
Component::toBlkId ()
const
277
{
278
return
toNumberWithMarker (0xFB);
279
}
280
281
inline
uint64_t
282
Component::toVersion ()
const
283
{
284
return
toNumberWithMarker (0xFD);
285
}
286
290
inline
std::ostream&
291
operator <<(std::ostream &os,
const
Component
&name)
292
{
293
name.
toUri
(os);
294
return
os;
295
}
296
297
}
// name
298
299
NDN_NAMESPACE_END
300
301
#endif // NDN_NAME_COMPONENT_H
ns3::ndn::name::Component::toUri
std::string toUri() const
Convert binary blob name component to std::string, escaping all non-printable characters in URI forma...
Definition:
name-component.cc:141
ns3::ndn::Blob
Class representing a general-use binary blob.
Definition:
blob.h:26
ns3::ndn::name::Component
Class to representing binary blob of NDN name component.
Definition:
name-component.h:28
ndnSIM
ndn.cxx
name-component.h
Generated on Mon Jan 19 2015 11:27:04 for ndnSIM by
1.8.7