UNPKG

ndn-js-contrib

Version:

Reusable 'Classes' for Named Data Networking: NameTree, PIT, FIB, ContentStore, Interfaces, and Transports

42 lines (32 loc) 1 kB
var NameTree = require("./NameTree.js") , Name = require("ndn-js/js/name.js").Name; function Strategy (){ this._nameTree = new NameTree(); this._nameTree.insert(new NameTree.Node(new Name(), new Strategy.Default())); return this; } Strategy.Default = function Strategy_default(){ return this; } Strategy.Default.prototype.choose = function Strategy_Default_choose(nexthops){ return nexthops; } Strategy.Default.prototype.log = function Strategy_Default_log(nexthops, response){ return; } Strategy.prototype.insert = function Strategy_insert(prefix, strategy){ this._nameTree.get(prefix).setItem(strategy); } Strategy.prototype.lookup = function Strategy_lookup(interest){ this._nameTree.up(interest.name) var self = this; this._nameTree.skip(function(node){ return (node.isEmpty()); }) var precident; for (var node of this._nameTree){ precident = precident ? precident : node.getItem() } return Promise.resolve(precident); } module.exports = Strategy;