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_; }
174 hasPrefix(
const uint8_t* prefix,
size_t prefixLength)
const;
300 static const uint8_t*
317 return *value_ == *other.value_;
387 static const uint8_t FINAL_SEGMENT_PREFIX[];
388 static size_t FINAL_SEGMENT_PREFIX_LENGTH;
405 Name(
const std::vector<Component>& components)
406 : components_(components), changeCount_(0)
452 set(
const char *uri);
459 set(
const std::string& uri) {
set(uri.c_str()); }
466 append(
const uint8_t *value,
size_t valueLength)
476 append(
const std::vector<uint8_t>& value)
484 return append(Component(value));
488 append(
const Component &value)
490 components_.push_back(value);
537 return append(value, valueLength);
562 DEPRECATED_IN_NDN_CPP
addComponent(
const uint8_t *value,
size_t valueLength)
564 return append(value, valueLength);
615 getSubName(
int iStartComponent,
size_t nComponents)
const;
637 return getSubName(0, components_.size() + nComponents);
651 toUri(
bool includeScheme =
false)
const;
765 fromEscapedString(
const char *escapedString,
size_t beginOffset,
size_t endOffset);
794 toEscapedString(
const std::vector<uint8_t>& value, std::ostringstream& result);
814 size()
const {
return components_.size(); }
825 return wireFormat.encodeName(*
this);
837 (
const uint8_t *input,
size_t inputLength,
840 wireFormat.decodeName(*
this, input, inputLength);
852 wireDecode(&input[0], input.size(), wireFormat);
904 operator [] (
int i)
const
913 template<
class T>
void
981 bool operator() (
const Name& name1,
const Name& name2)
const {
return name1 < name2; }
987 typedef std::vector<Component>::const_iterator const_iterator;
988 typedef std::vector<Component>::const_reverse_iterator const_reverse_iterator;
996 begin()
const {
return components_.begin(); }
1002 end()
const {
return components_.end(); }
1007 const_reverse_iterator
1008 rbegin()
const {
return components_.rbegin(); }
1013 const_reverse_iterator
1014 rend()
const {
return components_.rend(); }
1017 std::vector<Component> components_;
1018 uint64_t changeCount_;
1021 inline std::ostream&
1022 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:189
Name &DEPRECATED_IN_NDN_CPP appendComponent(const Blob &value)
Definition: name.hpp:553
Name & append(const std::string &value)
Append a new component, copying the bytes from the value string.
Definition: name.hpp:518
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:354
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:385
Name & append(const std::vector< uint8_t > &value)
Append a new component, copying from value.
Definition: name.hpp:476
void set(const NameLite &nameLite)
Clear this name, and set the components by copying from nameLite.
Definition: name.cpp:303
uint64_t toTimestamp() const
Interpret this name component as a timestamp according to NDN naming conventions for "Timestamp" (mar...
Definition: name.hpp:249
Name & appendSegmentOffset(uint64_t segmentOffset)
Append a component with the encoded segment byte offset according to NDN naming conventions for segme...
Definition: name.hpp:683
Name &DEPRECATED_IN_NDN_CPP appendComponent(const std::vector< uint8_t > &value)
Definition: name.hpp:544
std::string toUri(bool includeScheme=false) const
Encode this name as a URI.
Definition: name.cpp:324
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:459
void push_back(const T &component)
Append the component.
Definition: name.hpp:914
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:262
const Component &DEPRECATED_IN_NDN_CPP getComponent(size_t i) const
Definition: name.hpp:604
Name & append(const uint8_t *value, size_t valueLength)
Append a new component, copying from value of length valueLength.
Definition: name.hpp:466
Name getSubName(int iStartComponent, size_t nComponents) const
Get a new name, constructed as a subset of components.
Definition: name.cpp:341
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:850
const_reverse_iterator rbegin() const
Reverse begin iterator (const).
Definition: name.hpp:1008
static size_t getFinalSegmentPrefixLength()
Definition: name.hpp:307
bool operator==(const Name &name) const
Check if this name has the same component count and components as the given name. ...
Definition: name.hpp:925
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.cpp:496
int compare(const Component &other) const
Compare this to the other Component using NDN canonical ordering.
Definition: name.cpp:220
bool operator<(const Component &other) const
Return true if this is less than the other Component in the NDN canonical ordering.
Definition: name.hpp:363
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:734
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:960
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:372
uint64_t DEPRECATED_IN_NDN_CPP toFinalSegment() const
Definition: name.hpp:221
Name & appendVersion(uint64_t version)
Append a component with the encoded version number according to NDN naming conventions for "Versionin...
Definition: name.hpp:707
A Name holds an array of Name::Component and represents an NDN name.
Definition: name.hpp:40
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:179
uint64_t toNumber() const
Interpret this name component as a network-ordered number and return an integer.
Definition: name.cpp:212
size_t size() const
Get the number of components.
Definition: name.hpp:814
bool DEPRECATED_IN_NDN_CPP isFinalSegment() const
Definition: name.hpp:215
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:404
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:933
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:152
static bool DEPRECATED_IN_NDN_CPP breadthFirstLess(const Name &name1, const Name &name2)
Definition: name.hpp:975
Name &DEPRECATED_IN_NDN_CPP appendComponent(const uint8_t *value, size_t valueLength)
Definition: name.hpp:535
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:184
bool operator>(const Component &other) const
Return true if this is greater than the other Component in the NDN canonical ordering.
Definition: name.hpp:381
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:149
size_t size() const
Return the length of the immutable byte array.
Definition: blob.hpp:140
bool hasPrefix(const uint8_t *prefix, size_t prefixLength) const
Check if this name component begins with the given prefix.
Definition: name.cpp:163
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:206
bool equals(const Component &other) const
Check if this is the same component as other.
Definition: name.hpp:315
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:135
bool operator!=(const Component &other) const
Check if this is not the same component as other.
Definition: name.hpp:334
uint64_t toSegmentOffset() const
Interpret this name component as a segment byte offset according to NDN naming conventions for segmen...
Definition: name.hpp:197
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.
uint64_t getChangeCount() const
Get the change count, which is incremented each time this object is changed.
Definition: name.hpp:884
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:580
Name & appendTimestamp(uint64_t timestamp)
Append a component with the encoded timestamp according to NDN naming conventions for "Timestamp" (ma...
Definition: name.hpp:721
const_iterator end() const
End iterator (const).
Definition: name.hpp:1002
static const uint8_t * getFinalSegmentPrefix()
Definition: name.hpp:301
Name(const char *uri)
Parse the uri according to the NDN URI Scheme and create the name with the components.
Definition: name.hpp:414
std::string DEPRECATED_IN_NDN_CPP to_uri() const
Definition: name.hpp:657
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:942
size_t DEPRECATED_IN_NDN_CPP getComponentCount() const
Definition: name.hpp:598
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:396
bool operator==(const Component &other) const
Check if this is the same component as other.
Definition: name.hpp:326
Name & append(const char *value)
Append a new component, copying the bytes from the value string.
Definition: name.hpp:504
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:837
Name(const std::string &uri)
Parse the uri according to the NDN URI Scheme and create the name with the components.
Definition: name.hpp:424
Name &DEPRECATED_IN_NDN_CPP addComponent(const std::vector< uint8_t > &value)
Definition: name.hpp:571
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:562
Name getPrefix(int nComponents) const
Return a new Name with the first nComponents components of this Name.
Definition: name.hpp:634
uint64_t toVersion() const
Interpret this name component as a version number according to NDN naming conventions for "Versioning...
Definition: name.hpp:235
const_reverse_iterator rend() const
Reverse end iterator (const).
Definition: name.hpp:1014
const_iterator begin() const
Begin iterator (const).
Definition: name.hpp:996
bool operator>(const Name &other) const
Return true if this is greater than the other Name in the NDN canonical ordering. ...
Definition: name.hpp:969
void clear()
Clear all the components.
Definition: name.hpp:589
Name &DEPRECATED_IN_NDN_CPP appendFinalSegment(uint64_t segment)
Definition: name.hpp:692
Name(const std::vector< Component > &components)
Create a new Name, copying the name components.
Definition: name.hpp:405
static Blob fromEscapedString(const std::string &escapedString)
Make a Blob value by decoding the escapedString according to the NDN URI Scheme.
Definition: name.hpp:785
bool operator<(const Name &other) const
Return true if this is less than the other Name in the NDN canonical ordering.
Definition: name.hpp:951
Blob wireEncode(WireFormat &wireFormat=*WireFormat::getDefaultWireFormat()) const
Encode this Name for a particular wire format.
Definition: name.hpp:823
bool equals(const Name &name) const
Check if this name has the same component count and components as the given name. ...
Definition: name.cpp:370
Name & appendSegment(uint64_t segment)
Append a component with the encoded segment number according to NDN naming conventions for "Segment n...
Definition: name.hpp:670
static Component fromNumber(uint64_t number)
Create a component whose value is the nonNegativeInteger encoding of the number.
Definition: name.cpp:171