NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.3: NDN, CCN, CCNx, content centric networks
API Documentation
ndn::KeyLocator Class Reference

#include <key-locator.hpp>


class  Error

Public Types

enum  Type { KeyLocator_None = 65535, KeyLocator_Name = 0, KeyLocator_KeyDigest = 1, KeyLocator_Unknown = 255 }

Public Member Functions

 KeyLocator ()
 construct an empty KeyLocator More...
 KeyLocator (const Block &wire)
 construct from wire encoding More...
 KeyLocator (const Name &name)
 construct from Name More...
template<encoding::Tag TAG>
size_t wireEncode (EncodingImpl< TAG > &encoder) const
 prepend wire encoding More...
const BlockwireEncode () const
void wireDecode (const Block &wire)
 decode from wire encoding More...
bool empty () const
Type getType () const
KeyLocatorclear ()
 clear KeyLocator More...
const NamegetName () const
 get Name element More...
KeyLocatorsetName (const Name &name)
 set Name element More...
const BlockgetKeyDigest () const
 get KeyDigest element More...
KeyLocatorsetKeyDigest (const Block &keyDigest)
 set KeyDigest element More...
KeyLocatorsetKeyDigest (const ConstBufferPtr &keyDigest)
 set KeyDigest value More...
bool operator== (const KeyLocator &other) const
bool operator!= (const KeyLocator &other) const

Detailed Description

Definition at line 30 of file key-locator.hpp.

Member Enumeration Documentation

◆ Type


indicates KeyLocator is empty (internal use only)


indicates KeyLocator contains a Name


indicates KeyLocator contains a KeyDigest


indicates KeyLocator contains an unknown element

Definition at line 43 of file key-locator.hpp.

Constructor & Destructor Documentation

◆ KeyLocator() [1/3]

ndn::KeyLocator::KeyLocator ( )

construct an empty KeyLocator

Definition at line 34 of file key-locator.cpp.

◆ KeyLocator() [2/3]

ndn::KeyLocator::KeyLocator ( const Block wire)

construct from wire encoding

Definition at line 39 of file key-locator.cpp.

References wireDecode().

◆ KeyLocator() [3/3]

ndn::KeyLocator::KeyLocator ( const Name name)

construct from Name

implicit conversion is permitted

Definition at line 44 of file key-locator.cpp.

References setName().

Member Function Documentation

◆ wireEncode() [1/2]

template<encoding::Tag TAG>
size_t ndn::KeyLocator::wireEncode ( EncodingImpl< TAG > &  encoder) const

prepend wire encoding

encoderEncodingBuffer or Estimator

Definition at line 51 of file key-locator.cpp.

References ndn::tlv::KeyLocator, KeyLocator_KeyDigest, KeyLocator_Name, KeyLocator_None, and ndn::Name::wireEncode().

Referenced by ndn::Interest::matchesData(), operator==(), ndn::Selectors::wireEncode(), and ndn::SignatureInfo::wireEncode().

◆ wireEncode() [2/2]

const Block & ndn::KeyLocator::wireEncode ( ) const
wire encoding

Definition at line 83 of file key-locator.cpp.

References ndn::Block::hasWire().

Referenced by operator==().

◆ wireDecode()

void ndn::KeyLocator::wireDecode ( const Block wire)

decode from wire encoding

Errorouter TLV type is not KeyLocator
No error is thrown for unrecognized inner TLV, but type becomes KeyLocator_Unknown.

Definition at line 99 of file key-locator.cpp.

References ndn::Block::elements(), ndn::Block::elements_begin(), ndn::tlv::KeyDigest, ndn::tlv::KeyLocator, KeyLocator_KeyDigest, KeyLocator_Name, KeyLocator_None, KeyLocator_Unknown, ndn::tlv::Name, ndn::Block::parse(), ndn::Block::type(), and ndn::Name::wireDecode().

Referenced by KeyLocator(), ndn::Selectors::wireDecode(), and ndn::SignatureInfo::wireDecode().

◆ empty()

bool ndn::KeyLocator::empty ( ) const

Definition at line 95 of file key-locator.hpp.

References KeyLocator_None.

Referenced by ndn::Selectors::empty(), and ndn::Interest::matchesData().

◆ getType()

◆ clear()

KeyLocator & ndn::KeyLocator::clear ( )

clear KeyLocator

type becomes KeyLocator_None


Definition at line 128 of file key-locator.cpp.

References ndn::Name::clear(), KeyLocator_None, and ndn::Block::reset().

Referenced by getType(), setKeyDigest(), and setName().

◆ getName()

◆ setName()

KeyLocator & ndn::KeyLocator::setName ( const Name name)

set Name element

type becomes KeyLocator_Name


Definition at line 147 of file key-locator.cpp.

References clear(), and KeyLocator_Name.

Referenced by getType(), and KeyLocator().

◆ getKeyDigest()

const Block & ndn::KeyLocator::getKeyDigest ( ) const

get KeyDigest element

Errorif type is not KeyLocator_KeyDigest

Definition at line 156 of file key-locator.cpp.

References KeyLocator_KeyDigest.

Referenced by getType().

◆ setKeyDigest() [1/2]

KeyLocator & ndn::KeyLocator::setKeyDigest ( const Block keyDigest)

set KeyDigest element

type becomes KeyLocator_KeyDigest

Errorif Block type is not KeyDigest

Definition at line 165 of file key-locator.cpp.

References clear(), ndn::tlv::KeyDigest, KeyLocator_KeyDigest, and ndn::Block::type().

Referenced by getType(), and setKeyDigest().

◆ setKeyDigest() [2/2]

KeyLocator & ndn::KeyLocator::setKeyDigest ( const ConstBufferPtr keyDigest)

set KeyDigest value

type becomes KeyLocator_KeyDigest


Definition at line 177 of file key-locator.cpp.

References ndn::tlv::KeyDigest, ndn::encoding::makeBinaryBlock(), and setKeyDigest().

◆ operator==()

bool ndn::KeyLocator::operator== ( const KeyLocator other) const

Definition at line 187 of file key-locator.cpp.

References wireEncode().

Referenced by getType(), and operator!=().

◆ operator!=()

bool ndn::KeyLocator::operator!= ( const KeyLocator other) const

Definition at line 152 of file key-locator.hpp.

References operator==().

The documentation for this class was generated from the following files: