52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
|
// Simple jamsh test demonstrating lifetime resource control and negotiation
|
||
|
// with capabilities
|
||
|
|
||
|
// Ports for node negotiation
|
||
|
var port = Port.unique()
|
||
|
var rand = Port.unique();
|
||
|
|
||
|
function hello(cap) {
|
||
|
this.cap=cap;
|
||
|
this.act = {
|
||
|
init: function () {
|
||
|
log('START');
|
||
|
// negotiate more lifetime (default is 2000)
|
||
|
log(negotiate('LIFE',10000,this.cap))
|
||
|
// if negotiation was successful, we can sleep in peace, else..
|
||
|
sleep(5000)
|
||
|
},
|
||
|
stop: function () { log('STOP'); kill() }
|
||
|
}
|
||
|
this.trans = {
|
||
|
init:"stop"
|
||
|
}
|
||
|
this.on = {
|
||
|
error: function (e,arg) { log('Error: '+e) },
|
||
|
}
|
||
|
this.next="init"
|
||
|
}
|
||
|
var security = {}
|
||
|
security[Port.toString(port)]=Port.toString(rand);
|
||
|
|
||
|
// default platform settings
|
||
|
config({
|
||
|
IDLETIME:1000,
|
||
|
LIFETIME:2000,
|
||
|
// remember the private ports for node negotiation
|
||
|
security :security,
|
||
|
verbose:3,
|
||
|
})
|
||
|
|
||
|
compile(hello,{verbose:1})
|
||
|
start()
|
||
|
|
||
|
// Capability for lifetime negotation of the agent
|
||
|
var cap = Capability(port,Private.encode(0,Rights.NEG_LIFE,rand))
|
||
|
print(Capability.toString(cap))
|
||
|
var id1=create(hello,cap)
|
||
|
var id2=create(hello)
|
||
|
later(500,function () {
|
||
|
print(info('agent',id1).resources)
|
||
|
print(info('agent',id2).resources)
|
||
|
})
|