UNPKG

ndn-js-contrib

Version:

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

65 lines (55 loc) 1.85 kB
var Face = require("ndn-js/js/face.js").Face; Face.Create = function Face_create(transport, onElement){ return new Promise(function Face_create_Promise(resolve, reject){ if (!(transport && transport.connectionInfo)) return reject(new Error("Face.create(transport): must pass a transport")); var face , settings = { getTransport: function Face_create_getTransport(){ return transport; } , connectionInfo : transport.connectionInfo , getConnectionInfo : function Face_create_getConnectionInfo(){ return transport.connectionInfo; } , onopen: function Face_create_onopen(){ resolve(face); } , onclose: function Face_create_onclose(){ console.log("onClose") } }; face = new Face(settings); if (onElement) face.set_onReceivedElement(onElement); face.transport.connect (transport.connectionInfo, face, function Face_create_transport_connect_Callback() { face.readyStatus = Face.OPENED; console.log("face", face.onopen) if (face.onopen) // Call Face.onopen after success face.onopen(); }, function Face_create_transport_close_Callback() { console.log("onclosedCallback", face.onclose) face.onclose() } ); console.log("here") }); }; Face.prototype.closePromise = function Face_closePromise(){ var self = this; return new Promise(function Face_closePromise_Promise(resolve, reject){ self.onclose(); }); } Face.prototype.set_onReceivedElement = function Face_set_onReceivedElement(onReceived){ var self = this; this.onReceivedElement = function(element){ //console.log("getting element") onReceived(element, self); }; } module.exports = Face;