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