31 #include "util/blob.hpp" 
   32 #include "encoding/wire-format.hpp" 
   33 #include "lite/name-lite.hpp" 
   51     : value_((const uint8_t*)0, 0)
 
   70     : value_(value, valueLen)
 
   82     : value_((const uint8_t*)value, ::strlen(value))
 
   94     : value_((const uint8_t*)&value[0], value.
size())
 
  117     getValue()
 const { 
return value_; }
 
  219     hasPrefix(
const uint8_t* prefix, 
size_t prefixLength) 
const;
 
  413     static const uint8_t*
 
  437       return *value_ == *other.value_;
 
  507     static const uint8_t FINAL_SEGMENT_PREFIX[];
 
  508     static size_t FINAL_SEGMENT_PREFIX_LENGTH;
 
  525   Name(
const std::vector<Component>& components)
 
  526   : components_(components), changeCount_(0)
 
  572   set(
const char *uri);
 
  579   set(
const std::string& uri) { 
set(uri.c_str()); }
 
  586   append(
const uint8_t *value, 
size_t valueLength)
 
  596   append(
const std::vector<uint8_t>& value)
 
  604     return append(Component(value));
 
  608   append(
const Component &value)
 
  610     components_.push_back(value);
 
  657     return append(value, valueLength);
 
  682   DEPRECATED_IN_NDN_CPP 
addComponent(
const uint8_t *value, 
size_t valueLength)
 
  684     return append(value, valueLength);
 
  736   getSubName(
int iStartComponent, 
size_t nComponents) 
const;
 
  748     return getSubName(iStartComponent, components_.size());
 
  761       return getSubName(0, components_.size() + nComponents);
 
  775   toUri(
bool includeScheme = 
false) 
const;
 
  923   fromEscapedString(
const char *escapedString, 
size_t beginOffset, 
size_t endOffset);
 
  952   toEscapedString(
const std::vector<uint8_t>& value, std::ostringstream& result);
 
  972   size()
 const { 
return components_.size(); }
 
  983     return wireFormat.encodeName(*
this);
 
  995     (
const uint8_t *input, 
size_t inputLength,
 
  998     wireFormat.decodeName(*
this, input, inputLength);
 
 1010     wireDecode(&input[0], input.size(), wireFormat);
 
 1066     return compare(0, components_.size(), other);
 
 1090     (
int iStartComponent, 
size_t nComponents, 
const Name& other,
 
 1091      int iOtherStartComponent, 
size_t nOtherComponents) 
const;
 
 1113     (
int iStartComponent, 
size_t nComponents, 
const Name& other,
 
 1114      int iOtherStartComponent = 0) 
const 
 1117       (iStartComponent, nComponents, other, iOtherStartComponent,
 
 1118        other.components_.size());
 
 1122   operator [] (
int i)
 const 
 1131   template<
class T> 
void 
 1199     bool operator() (
const Name& name1, 
const Name& name2)
 const { 
return name1 < name2; }
 
 1205   typedef std::vector<Component>::const_iterator const_iterator;
 
 1206   typedef std::vector<Component>::const_reverse_iterator const_reverse_iterator;
 
 1214   begin()
 const { 
return components_.begin(); }
 
 1220   end()
 const { 
return components_.end(); }
 
 1225   const_reverse_iterator
 
 1226   rbegin()
 const { 
return components_.rbegin(); }
 
 1231   const_reverse_iterator
 
 1232   rend()
 const { 
return components_.rend(); }
 
 1235   std::vector<Component> components_;
 
 1236   uint64_t changeCount_;
 
 1239 inline std::ostream&
 
 1240 operator << (std::ostream& os, 
const Name& name)
 
static Component fromNumberWithPrefix(uint64_t number, const uint8_t *prefix, size_t prefixLength)
Create a component whose value is the prefix appended with the network-ordered encoding of the number...
Definition: name.cpp:142
 
Name &DEPRECATED_IN_NDN_CPP appendComponent(const Blob &value)
Definition: name.hpp:673
 
Name & append(const std::string &value)
Append a new component, copying the bytes from the value string. 
Definition: name.hpp:638
 
static Component fromTimestamp(uint64_t timestamp)
Create a component with the encoded timestamp according to NDN naming conventions for "Timestamp" (ma...
Definition: name.hpp:392
 
Copyright (C) 2013-2016 Regents of the University of California. 
Definition: common.hpp:35
 
bool operator<=(const Component &other) const 
Return true if this is less than or equal to the other Component in the NDN canonical ordering...
Definition: name.hpp:474
 
bool match(const Name &name) const 
Check if the N components of this name are the same as the first N components of the given name...
Definition: name.cpp:365
 
Name & append(const std::vector< uint8_t > &value)
Append a new component, copying from value. 
Definition: name.hpp:596
 
void set(const NameLite &nameLite)
Clear this name, and set the components by copying from nameLite. 
Definition: name.cpp:284
 
uint64_t toTimestamp() const 
Interpret this name component as a timestamp according to NDN naming conventions for "Timestamp" (mar...
Definition: name.hpp:294
 
Name & appendSegmentOffset(uint64_t segmentOffset)
Append a component with the encoded segment byte offset according to NDN naming conventions for segme...
Definition: name.hpp:807
 
static Component fromSegment(uint64_t segment)
Create a component with the encoded segment number according to NDN naming conventions for "Segment n...
Definition: name.hpp:350
 
Name &DEPRECATED_IN_NDN_CPP appendComponent(const std::vector< uint8_t > &value)
Definition: name.hpp:664
 
std::string toUri(bool includeScheme=false) const 
Encode this name as a URI. 
Definition: name.cpp:305
 
void set(const std::string &uri)
Parse the uri according to the NDN URI Scheme and set the name with the components. 
Definition: name.hpp:579
 
void push_back(const T &component)
Append the component. 
Definition: name.hpp:1132
 
A NameLite holds an array of NameLite::Component. 
Definition: name-lite.hpp:34
 
uint64_t toSequenceNumber() const 
Interpret this name component as a sequence number according to NDN naming conventions for "Sequencin...
Definition: name.hpp:307
 
const Component &DEPRECATED_IN_NDN_CPP getComponent(size_t i) const 
Definition: name.hpp:724
 
Name & append(const uint8_t *value, size_t valueLength)
Append a new component, copying from value of length valueLength. 
Definition: name.hpp:586
 
static Component fromSequenceNumber(uint64_t sequenceNumber)
Create a component with the encoded sequence number according to NDN naming conventions for "Sequenci...
Definition: name.hpp:405
 
Name getSubName(int iStartComponent, size_t nComponents) const 
Get a new name, constructed as a subset of components. 
Definition: name.cpp:322
 
bool isSegment() const 
Check if this component is a segment number according to NDN naming conventions for "Segment number" ...
Definition: name.hpp:148
 
void wireDecode(const std::vector< uint8_t > &input, WireFormat &wireFormat=*WireFormat::getDefaultWireFormat())
Decode the input using a particular wire format and update this Name. 
Definition: name.hpp:1008
 
const_reverse_iterator rbegin() const 
Reverse begin iterator (const). 
Definition: name.hpp:1226
 
static size_t getFinalSegmentPrefixLength()
Definition: name.hpp:420
 
bool operator==(const Name &name) const 
Check if this name has the same component count and components as the given name. ...
Definition: name.hpp:1143
 
A Name::Component holds a read-only name component value. 
Definition: name.hpp:45
 
int compare(const Name &other) const 
Compare this to the other Name using NDN canonical ordering. 
Definition: name.hpp:1064
 
int compare(const Component &other) const 
Compare this to the other Component using NDN canonical ordering. 
Definition: name.cpp:173
 
bool operator<(const Component &other) const 
Return true if this is less than the other Component in the NDN canonical ordering. 
Definition: name.hpp:483
 
Component(const std::vector< uint8_t > &value)
Create a new Name::Component, copying the given value. 
Definition: name.hpp:59
 
Name & appendSequenceNumber(uint64_t sequenceNumber)
Append a component with the encoded sequence number according to NDN naming conventions for "Sequenci...
Definition: name.hpp:858
 
bool operator>=(const Name &other) const 
Return true if this is less than or equal to the other Name in the NDN canonical ordering. 
Definition: name.hpp:1178
 
static Component fromVersion(uint64_t version)
Create a component with the encoded version number according to NDN naming conventions for "Versionin...
Definition: name.hpp:378
 
Component(const char *value)
Create a new Name::Component, copying the bytes from the value string. 
Definition: name.hpp:81
 
bool operator>=(const Component &other) const 
Return true if this is less than or equal to the other Component in the NDN canonical ordering...
Definition: name.hpp:492
 
uint64_t DEPRECATED_IN_NDN_CPP toFinalSegment() const 
Definition: name.hpp:266
 
Name & appendVersion(uint64_t version)
Append a component with the encoded version number according to NDN naming conventions for "Versionin...
Definition: name.hpp:831
 
A Name holds an array of Name::Component and represents an NDN name. 
Definition: name.hpp:40
 
Component getSuccessor() const 
Get the successor of this component, as described in Name::getSuccessor. 
Definition: name.cpp:186
 
static Component fromNumberWithMarker(uint64_t number, uint8_t marker)
Create a component whose value is the marker appended with the nonNegativeInteger encoding of the num...
Definition: name.cpp:132
 
uint64_t toNumber() const 
Interpret this name component as a network-ordered number and return an integer. 
Definition: name.cpp:165
 
size_t size() const 
Get the number of components. 
Definition: name.hpp:972
 
bool DEPRECATED_IN_NDN_CPP isFinalSegment() const 
Definition: name.hpp:260
 
static Blob fromEscapedString(const char *escapedString, size_t beginOffset, size_t endOffset)
Make a Blob value by decoding the escapedString between beginOffset and endOffset according to the ND...
Definition: name.cpp:384
 
A Blob holds a pointer to an immutable byte array implemented as const std::vector. 
Definition: blob.hpp:42
 
bool operator!=(const Name &name) const 
Check if this name has the same component count and components as the given name. ...
Definition: name.hpp:1151
 
Name getSuccessor() const 
Get the successor of this name which is defined as follows. 
Definition: name.cpp:352
 
const uint8_t * buf() const 
Return a const pointer to the first byte of the immutable byte array, or 0 if the pointer is null...
Definition: blob.hpp:159
 
static bool DEPRECATED_IN_NDN_CPP breadthFirstLess(const Name &name1, const Name &name2)
Definition: name.hpp:1193
 
Name &DEPRECATED_IN_NDN_CPP appendComponent(const uint8_t *value, size_t valueLength)
Definition: name.hpp:655
 
std::string toEscapedString() const 
Convert this component value by escaping characters according to the NDN URI Scheme. 
Definition: name.hpp:136
 
uint64_t toSegment() const 
Interpret this name component as a segment number according to NDN naming conventions for "Segment nu...
Definition: name.hpp:229
 
bool operator>(const Component &other) const 
Return true if this is greater than the other Component in the NDN canonical ordering. 
Definition: name.hpp:501
 
uint64_t toNumberWithPrefix(const uint8_t *prefix, size_t prefixLength) const 
Interpret this name component as a network-ordered number with a prefix and return an integer...
Definition: name.cpp:102
 
size_t size() const 
Return the length of the immutable byte array. 
Definition: blob.hpp:147
 
bool isSegmentOffset() const 
Check if this component is a segment byte offset according to NDN naming conventions for "Byte offset...
Definition: name.hpp:157
 
bool hasPrefix(const uint8_t *prefix, size_t prefixLength) const 
Check if this name component begins with the given prefix. 
Definition: name.cpp:116
 
static Component fromSegmentOffset(uint64_t segmentOffset)
Create a component with the encoded segment byte offset according to NDN naming conventions for segme...
Definition: name.hpp:363
 
A NameLite::Component holds a pointer to the component value. 
Definition: name-lite.hpp:39
 
uint64_t DEPRECATED_IN_NDN_CPP toSeqNum() const 
Definition: name.hpp:251
 
bool equals(const Component &other) const 
Check if this is the same component as other. 
Definition: name.hpp:435
 
uint64_t toNumberWithMarker(uint8_t marker) const 
Interpret this name component as a network-ordered number with a marker and return an integer...
Definition: name.cpp:88
 
bool operator!=(const Component &other) const 
Check if this is not the same component as other. 
Definition: name.hpp:454
 
uint64_t toSegmentOffset() const 
Interpret this name component as a segment byte offset according to NDN naming conventions for segmen...
Definition: name.hpp:242
 
static void toEscapedString(const std::vector< uint8_t > &value, std::ostringstream &result)
Write the value to result, escaping characters according to the NDN URI Scheme. 
 
Name getSubName(int iStartComponent) const 
Get a new name, constructed as a subset of components starting at iStartComponent until the end of th...
Definition: name.hpp:746
 
uint64_t getChangeCount() const 
Get the change count, which is incremented each time this object is changed. 
Definition: name.hpp:1042
 
bool isTimestamp() const 
Check if this component is a timestamp according to NDN naming conventions for "Timestamp" (marker 0x...
Definition: name.hpp:175
 
Component(const uint8_t *value, size_t valueLen)
Create a new Name::Component, copying the given value. 
Definition: name.hpp:69
 
void toEscapedString(std::ostringstream &result) const 
Write this component value to result, escaping characters according to the NDN URI Scheme...
Definition: name.hpp:125
 
Name &DEPRECATED_IN_NDN_CPP addComponent(const Blob &value)
Definition: name.hpp:700
 
Name & appendTimestamp(uint64_t timestamp)
Append a component with the encoded timestamp according to NDN naming conventions for "Timestamp" (ma...
Definition: name.hpp:845
 
const_iterator end() const 
End iterator (const). 
Definition: name.hpp:1220
 
static const uint8_t * getFinalSegmentPrefix()
Definition: name.hpp:414
 
Name(const char *uri)
Parse the uri according to the NDN URI Scheme and create the name with the components. 
Definition: name.hpp:534
 
std::string DEPRECATED_IN_NDN_CPP to_uri() const 
Definition: name.hpp:781
 
bool operator<=(const Name &other) const 
Return true if this is less than or equal to the other Name in the NDN canonical ordering. 
Definition: name.hpp:1160
 
size_t DEPRECATED_IN_NDN_CPP getComponentCount() const 
Definition: name.hpp:718
 
Component()
Create a new Name::Component with a zero-length value. 
Definition: name.hpp:50
 
Name()
Create a new Name with no components. 
Definition: name.hpp:516
 
bool operator==(const Component &other) const 
Check if this is the same component as other. 
Definition: name.hpp:446
 
Name & append(const char *value)
Append a new component, copying the bytes from the value string. 
Definition: name.hpp:624
 
bool isPrefixOf(const Name &name) const 
Check if the N components of this name are the same as the first N components of the given name...
Definition: name.hpp:911
 
void wireDecode(const uint8_t *input, size_t inputLength, WireFormat &wireFormat=*WireFormat::getDefaultWireFormat())
Decode the input using a particular wire format and update this Name. 
Definition: name.hpp:995
 
Name(const std::string &uri)
Parse the uri according to the NDN URI Scheme and create the name with the components. 
Definition: name.hpp:544
 
Name &DEPRECATED_IN_NDN_CPP addComponent(const std::vector< uint8_t > &value)
Definition: name.hpp:691
 
Component(const std::string &value)
Create a new Name::Component, copying the bytes from the value string. 
Definition: name.hpp:93
 
Component(const Blob &value)
Create a new Name::Component, taking another pointer to the Blob value. 
Definition: name.hpp:102
 
Name &DEPRECATED_IN_NDN_CPP addComponent(const uint8_t *value, size_t valueLength)
Definition: name.hpp:682
 
bool isSequenceNumber() const 
Check if this component is a sequence number according to NDN naming conventions for "Sequencing" (ma...
Definition: name.hpp:184
 
Definition: name.hpp:1198
 
Name getPrefix(int nComponents) const 
Return a new Name with the first nComponents components of this Name. 
Definition: name.hpp:758
 
uint64_t toVersion() const 
Interpret this name component as a version number according to NDN naming conventions for "Versioning...
Definition: name.hpp:280
 
const_reverse_iterator rend() const 
Reverse end iterator (const). 
Definition: name.hpp:1232
 
const_iterator begin() const 
Begin iterator (const). 
Definition: name.hpp:1214
 
bool operator>(const Name &other) const 
Return true if this is greater than the other Name in the NDN canonical ordering. ...
Definition: name.hpp:1187
 
void clear()
Clear all the components. 
Definition: name.hpp:709
 
Name &DEPRECATED_IN_NDN_CPP appendFinalSegment(uint64_t segment)
Definition: name.hpp:816
 
Name(const std::vector< Component > &components)
Create a new Name, copying the name components. 
Definition: name.hpp:525
 
static Blob fromEscapedString(const std::string &escapedString)
Make a Blob value by decoding the escapedString according to the NDN URI Scheme. 
Definition: name.hpp:943
 
bool operator<(const Name &other) const 
Return true if this is less than the other Name in the NDN canonical ordering. 
Definition: name.hpp:1169
 
Blob wireEncode(WireFormat &wireFormat=*WireFormat::getDefaultWireFormat()) const 
Encode this Name for a particular wire format. 
Definition: name.hpp:981
 
bool isVersion() const 
Check if this component is a version number according to NDN naming conventions for "Versioning" (mar...
Definition: name.hpp:166
 
bool equals(const Name &name) const 
Check if this name has the same component count and components as the given name. ...
Definition: name.cpp:337
 
Name & appendSegment(uint64_t segment)
Append a component with the encoded segment number according to NDN naming conventions for "Segment n...
Definition: name.hpp:794
 
static Component fromNumber(uint64_t number)
Create a component whose value is the nonNegativeInteger encoding of the number. 
Definition: name.cpp:124