UNPKG

ndn-js-contrib

Version:

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

51 lines (50 loc) 1.76 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"); if (face.onopen) 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;