summaryrefslogtreecommitdiff
path: root/includes/js/dojox/timing/Streamer.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojox/timing/Streamer.js')
-rw-r--r--includes/js/dojox/timing/Streamer.js94
1 files changed, 0 insertions, 94 deletions
diff --git a/includes/js/dojox/timing/Streamer.js b/includes/js/dojox/timing/Streamer.js
deleted file mode 100644
index a6d0cda..0000000
--- a/includes/js/dojox/timing/Streamer.js
+++ /dev/null
@@ -1,94 +0,0 @@
-if(!dojo._hasResource["dojox.timing.Streamer"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
-dojo._hasResource["dojox.timing.Streamer"] = true;
-dojo.provide("dojox.timing.Streamer");
-
-dojo.require("dojox.timing._base");
-
-dojox.timing.Streamer = function(
- /* function */input,
- /* function */output,
- /* int */interval,
- /* int */minimum,
- /* array */initialData
-){
- // summary
- // Streamer will take an input function that pushes N datapoints into a
- // queue, and will pass the next point in that queue out to an
- // output function at the passed interval; this way you can emulate
- // a constant buffered stream of data.
- // input: the function executed when the internal queue reaches minimumSize
- // output: the function executed on internal tick
- // interval: the interval in ms at which the output function is fired.
- // minimum: the minimum number of elements in the internal queue.
-
- var self = this;
- var queue = [];
-
- // public properties
- this.interval = interval || 1000;
- this.minimumSize = minimum || 10; // latency usually == interval * minimumSize
- this.inputFunction = input || function(q){ };
- this.outputFunction = output || function(point){ };
-
- // more setup
- var timer = new dojox.timing.Timer(this.interval);
- var tick = function(){
- self.onTick(self);
-
- if(queue.length < self.minimumSize){
- self.inputFunction(queue);
- }
-
- var obj = queue.shift();
- while(typeof(obj) == "undefined" && queue.length > 0){
- obj = queue.shift();
- }
-
- // check to see if the input function needs to be fired
- // stop before firing the output function
- // TODO: relegate this to the output function?
- if(typeof(obj) == "undefined"){
- self.stop();
- return;
- }
-
- // call the output function.
- self.outputFunction(obj);
- };
-
- this.setInterval = function(/* int */ms){
- // summary
- // sets the interval in milliseconds of the internal timer
- this.interval = ms;
- timer.setInterval(ms);
- };
-
- this.onTick = function(/* dojox.timing.Streamer */obj){ };
- // wrap the timer functions so that we can connect to them if needed.
- this.start = function(){
- // summary
- // starts the Streamer
- if(typeof(this.inputFunction) == "function" && typeof(this.outputFunction) == "function"){
- timer.start();
- return;
- }
- throw new Error("You cannot start a Streamer without an input and an output function.");
- };
- this.onStart = function(){ };
- this.stop = function(){
- // summary
- // stops the Streamer
- timer.stop();
- };
- this.onStop = function(){ };
-
- // finish initialization
- timer.onTick = this.tick;
- timer.onStart = this.onStart;
- timer.onStop = this.onStop;
- if(initialData){
- queue.concat(initialData);
- }
-};
-
-}