UNPKG

@ndn/packet

Version:

NDNts: Network Layer Packets

31 lines (30 loc) 967 B
import { Encoder, EvDecoder } from "@ndn/tlv"; import { TT } from "./an_browser.js"; import { Name } from "./name/mod_browser.js"; const EVD = new EvDecoder("FwHint") .add(TT.Name, (t, { decoder }) => t.push(decoder.decode(Name)), { repeat: true }); /** ForwardingHint in Interest. */ export class FwHint { static decodeValue(vd) { const t = new FwHint(); EVD.decodeValue(t.delegations, vd); return t; } constructor(arg) { if (Array.isArray(arg)) { for (const name of arg) { this.delegations.push(Name.from(name)); } } else if (Name.isNameLike(arg)) { this.delegations = [Name.from(arg)]; } else if (arg instanceof FwHint) { this.delegations = [...arg.delegations]; } } delegations = []; encodeTo(encoder) { encoder.prependTlv(TT.ForwardingHint, Encoder.OmitEmpty, ...this.delegations); } }