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