ndn-js-contrib
Version:
Reusable 'Classes' for Named Data Networking: NameTree, PIT, FIB, ContentStore, Interfaces, and Transports
65 lines (55 loc) • 1.85 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", 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;