ndn-js-contrib
Version:
Reusable 'Classes' for Named Data Networking: NameTree, PIT, FIB, ContentStore, Interfaces, and Transports
51 lines (50 loc) • 1.76 kB
JavaScript
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;