42 lines
848 B
JavaScript
42 lines
848 B
JavaScript
|
function foo (options) {
|
||
|
this.producer=options.producer;
|
||
|
this.data=null;
|
||
|
this.act = {
|
||
|
main : function () {
|
||
|
log('starting',this.producer)
|
||
|
},
|
||
|
produce : function () {
|
||
|
this.data={number:random(1,100)}
|
||
|
out(['SENSOR',this.data])
|
||
|
this.data.number++;
|
||
|
out(['SENSOR',this.data])
|
||
|
},
|
||
|
forkme : function () {
|
||
|
fork({
|
||
|
producer:false,
|
||
|
data:null
|
||
|
});
|
||
|
},
|
||
|
consume : function () {
|
||
|
inp.try(3000, ['SENSOR',_],function (t) {
|
||
|
this.data=t;
|
||
|
},true);
|
||
|
},
|
||
|
end : function () {
|
||
|
log('terminate',this.data);
|
||
|
}
|
||
|
}
|
||
|
this.trans = {
|
||
|
main : produce,
|
||
|
produce : forkme,
|
||
|
forkme : function () {
|
||
|
return this.producer?end:consume
|
||
|
},
|
||
|
consume : end,
|
||
|
}
|
||
|
this.next=main;
|
||
|
}
|
||
|
compile(foo,{verbose:1})
|
||
|
create('foo',{producer:true})
|
||
|
start()
|