mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-28 18:00:09 +00:00
experimenting with peer protocol/api...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
f1a23fda6d
commit
5f610ca091
@ -16,6 +16,18 @@ var core = require('features/core')
|
||||
|
||||
|
||||
|
||||
/*********************************************************************/
|
||||
// helpers...
|
||||
|
||||
// XXX should this parse out the protocol???
|
||||
// ...technically we no longer need it....
|
||||
var makeProtocolHandiler = function(protocol, func){
|
||||
return function(id){
|
||||
return id.startsWith(protocol + ':')
|
||||
&& func.apply(this, arguments) } }
|
||||
|
||||
|
||||
|
||||
/*********************************************************************/
|
||||
|
||||
// XXX this is a generic API, add ability to define protocols...
|
||||
@ -154,25 +166,54 @@ module.Peer = core.ImageGridFeatures.Feature({
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
// XXX all the return values here will be ignored -- need a way to figure
|
||||
// out a cooperative mechanic to return promises...
|
||||
var ChildProcessPeerActions = actions.Actions({
|
||||
|
||||
peerConnect: ['- Peer/',
|
||||
function(id, options){
|
||||
// XXX
|
||||
}],
|
||||
makeProtocolHandiler('child', function(id, options){
|
||||
// XXX need a cooperative way to pass this to the root method return...
|
||||
return new Promise((function(resolve, reject){
|
||||
// already connected...
|
||||
if(id in this.__peers){
|
||||
return resolve(id)
|
||||
}
|
||||
|
||||
// XXX run ig.js in child_process + add peer feature to setup...
|
||||
// XXX
|
||||
}).bind(this))
|
||||
})],
|
||||
peerDisconnect: ['- Peer/',
|
||||
function(id){
|
||||
// XXX
|
||||
}],
|
||||
makeProtocolHandiler('child', function(id){
|
||||
// XXX need a cooperative way to pass this to the root method return...
|
||||
return new Promise((function(resolve, reject){
|
||||
// already disconnected...
|
||||
if(this.__peers[id] == null){
|
||||
return resolve(id)
|
||||
}
|
||||
|
||||
// trigger stop...
|
||||
this.peerCall(id, 'stop')
|
||||
.then(function(){
|
||||
// XXX terminate child...
|
||||
// XXX
|
||||
})
|
||||
}).bind(this))
|
||||
})],
|
||||
|
||||
peerCall: ['- Peer/',
|
||||
function(id, action){
|
||||
// XXX
|
||||
}],
|
||||
makeProtocolHandiler('child', function(id, action){
|
||||
// XXX need a cooperative way to pass this to the root method return...
|
||||
return new Promise((function(resolve, reject){
|
||||
// XXX
|
||||
}).bind(this))
|
||||
})],
|
||||
peerApply: ['- Peer/',
|
||||
function(id, action, args){
|
||||
// XXX
|
||||
}],
|
||||
makeProtocolHandiler('child', function(id, action, args){
|
||||
// XXX need a cooperative way to pass this to the root method return...
|
||||
return new Promise((function(resolve, reject){
|
||||
// XXX
|
||||
}).bind(this))
|
||||
})],
|
||||
})
|
||||
|
||||
|
||||
@ -186,6 +227,9 @@ module.ChildProcessPeer = core.ImageGridFeatures.Feature({
|
||||
'peer',
|
||||
],
|
||||
|
||||
isApplicable: function(){
|
||||
return this.runtime == 'nw' || this.runtime == 'node' },
|
||||
|
||||
actions: ChildProcessPeerActions,
|
||||
})
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user