mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-29 10:20:08 +00:00
119 lines
2.5 KiB
JavaScript
Executable File
119 lines
2.5 KiB
JavaScript
Executable File
/**********************************************************************
|
|
*
|
|
* Setup a node.js child_process communications channel and listen and
|
|
* exec commands...
|
|
*
|
|
*
|
|
**********************************************************************/
|
|
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
|
|
(function(require){ var module={} // make module AMD/node compatible...
|
|
/*********************************************************************/
|
|
|
|
var actions = require('lib/actions')
|
|
var features = require('lib/features')
|
|
|
|
var core = require('features/core')
|
|
|
|
|
|
|
|
/*********************************************************************/
|
|
|
|
// XXX this is a generic API, add ability to define protocols...
|
|
// Protocols:
|
|
// - child_process
|
|
// - http
|
|
// - rpc
|
|
// - mq
|
|
// - ...
|
|
var PeerActions = actions.Actions({
|
|
|
|
// XXX need more control...
|
|
// - get proxies to specific peer...
|
|
get peeractions(){
|
|
return this.getPeerActions() },
|
|
|
|
getPeerActions: ['- Peer/',
|
|
function(id){
|
|
var that = this
|
|
return this.actions.filter(id ?
|
|
function(action){
|
|
return that.getActionAttr(action, '__peer__') == id }
|
|
// get all peer actions...
|
|
: function(action){
|
|
return that.getActionAttr(action, '__peer__') })
|
|
}],
|
|
// XXX should this also check props???
|
|
isPeerAction: ['- Peer/',
|
|
function(name){
|
|
return !!this.getActionAttr(name, '__peer__') }],
|
|
|
|
peerCreate: ['- Peer/',
|
|
function(){
|
|
// XXX
|
|
}],
|
|
peerConnect: ['- Peer/',
|
|
function(){
|
|
// XXX
|
|
}],
|
|
|
|
// event...
|
|
peerConnected: ['- Peer/',
|
|
core.notUserCallable(function(){
|
|
// XXX
|
|
})],
|
|
// event...
|
|
peerDisconnected: ['- Peer/',
|
|
core.notUserCallable(function(){
|
|
// XXX
|
|
})],
|
|
|
|
peerList: ['- Peer/',
|
|
function(){
|
|
// XXX
|
|
}],
|
|
peerSpec: ['- Peer/',
|
|
function(){
|
|
// XXX
|
|
}],
|
|
peerProxy: ['- Peer/',
|
|
function(){
|
|
// XXX
|
|
}],
|
|
|
|
peerCall: ['- Peer/',
|
|
function(){
|
|
// XXX
|
|
}],
|
|
peerApply: ['- Peer/',
|
|
function(){
|
|
// XXX
|
|
}],
|
|
|
|
// XXX if no actions are given, proxy all...
|
|
// XXX also proxy descriptors???
|
|
peerMixin: ['- Peer/',
|
|
function(id, actions){
|
|
// XXX
|
|
}],
|
|
// XXX should this be .peerMixout(..)
|
|
peerMixout: ['- Peer/',
|
|
function(id, actions){
|
|
// XXX
|
|
}],
|
|
})
|
|
|
|
var Peer =
|
|
module.Peer = core.ImageGridFeatures.Feature({
|
|
title: '',
|
|
doc: '',
|
|
|
|
tag: 'child',
|
|
|
|
actions: PeerActions,
|
|
})
|
|
|
|
|
|
|
|
/**********************************************************************
|
|
* vim:set ts=4 sw=4 : */ return module })
|