Tue 27 Aug 00:14:56 CEST 2024
This commit is contained in:
parent
85d8aa0c28
commit
d4e77a58dd
51
test/test-jamsh1.js
Normal file
51
test/test-jamsh1.js
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
// 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)
|
||||||
|
})
|
Loading…
Reference in New Issue
Block a user