a:20:{s:9:"#provides";s:21:"dojox.analytics._base";s:9:"#resource";s:18:"analytics/_base.js";s:15:"dojox.analytics";a:4:{s:4:"type";s:8:"Function";s:6:"source";s:743:" this._data = []; //id of messages for this session/page this._id = 1; //some default values this.sendInterval = dojo.config["sendInterval"] || 5000; this.inTransitRetry = dojo.config["inTransitRetry"] || 200; this.dataUrl = dojo.config["analyticsUrl"] || dojo.moduleUrl("dojox.analytics.logger", "dojoxAnalytics.php"); this.sendMethod = dojo.config["sendMethod"] || "xhrPost"; this.maxRequestSize = dojo.isIE ? 2000 : dojo.config["maxRequestSize"] || 4000; //while we can go ahead and being logging as soon as this constructor is completed //we're not going to schedule pushing data to the server until after the page //has completed loading dojo.addOnLoad(this, "schedulePusher"); dojo.addOnUnload(this, "pushData", true);";s:7:"summary";s:76:"TODOC where we store data until we're ready to send it off. the data queue;";s:9:"classlike";b:1;}s:21:"dojox.analytics._data";a:3:{s:8:"instance";s:15:"dojox.analytics";s:7:"private";b:1;s:7:"summary";s:0:"";}s:19:"dojox.analytics._id";a:3:{s:8:"instance";s:15:"dojox.analytics";s:7:"private";b:1;s:7:"summary";s:0:"";}s:28:"dojox.analytics.sendInterval";a:2:{s:8:"instance";s:15:"dojox.analytics";s:7:"summary";s:0:"";}s:30:"dojox.analytics.inTransitRetry";a:2:{s:8:"instance";s:15:"dojox.analytics";s:7:"summary";s:0:"";}s:23:"dojox.analytics.dataUrl";a:2:{s:8:"instance";s:15:"dojox.analytics";s:7:"summary";s:0:"";}s:26:"dojox.analytics.sendMethod";a:2:{s:8:"instance";s:15:"dojox.analytics";s:7:"summary";s:0:"";}s:30:"dojox.analytics.maxRequestSize";a:2:{s:8:"instance";s:15:"dojox.analytics";s:7:"summary";s:0:"";}s:30:"dojox.analytics.schedulePusher";a:5:{s:9:"prototype";s:15:"dojox.analytics";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:8:"interval";a:1:{s:4:"type";s:3:"Int";}}s:6:"source";s:76:" setTimeout(dojo.hitch(this, "checkData"), interval || this.sendInterval); ";s:7:"summary";s:59:"Schedule the data pushing routines to happen in interval ms";}s:23:"dojox.analytics.addData";a:5:{s:9:"prototype";s:15:"dojox.analytics";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:8:"dataType";a:1:{s:4:"type";s:0:"";}s:4:"data";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:239:" if(arguments.length > 2){ // FIXME: var c = dojo._toArray(arguments) ? var c = []; for(var i = 1; i < arguments.length; i++){ c.push(arguments[i]); } data = c; } this._data.push({ plugin: dataType, data: data });";s:7:"summary";s:74:"add data to the queue. Will be pusshed to the server on the next data push";}s:25:"dojox.analytics.checkData";a:4:{s:9:"prototype";s:15:"dojox.analytics";s:4:"type";s:8:"Function";s:6:"source";s:144:" if(this._inTransit){ this.schedulePusher(this.inTransitRetry); return; } if(this.pushData()){ return; } this.schedulePusher();";s:7:"summary";s:6:"TODOC?";}s:24:"dojox.analytics.pushData";a:4:{s:9:"prototype";s:15:"dojox.analytics";s:4:"type";s:8:"Function";s:6:"source";s:580:" if(this._data.length){ //clear the queue this._inTransit = this._data; this._data = []; var def; switch(this.sendMethod){ case "script": def = dojo.io.script.get({ url: this.getQueryPacket(), preventCache: 1, callbackParamName: "callback" }); break; case "xhrPost": default: def = dojo.xhrPost({ url:this.dataUrl, content:{ id: this._id++, data: dojo.toJson(this._inTransit) } }); break; } def.addCallback(this, "onPushComplete"); return def; } return false;";s:7:"summary";s:168:"pushes data to the server if any exists. If a push is done, return the deferred after hooking up completion callbacks. If there is no data to be pushed, return false;";}s:26:"dojox.analytics._inTransit";a:3:{s:8:"instance";s:15:"dojox.analytics";s:7:"private";b:1;s:7:"summary";s:0:"";}s:30:"dojox.analytics.getQueryPacket";a:4:{s:9:"prototype";s:15:"dojox.analytics";s:4:"type";s:8:"Function";s:6:"source";s:388:" while(true){ var content = { id: this._id++, data: dojo.toJson(this._inTransit) }; //FIXME would like a much better way to get the query down to lenght var query = this.dataUrl + '?' + dojo.objectToQuery(content); if(query.length > this.maxRequestSize){ this._data.unshift(this._inTransit.pop()); this._split = 1; }else{ return query; } }";s:7:"summary";s:5:"TODOC";}s:22:"dojox.analytics._split";a:3:{s:8:"instance";s:15:"dojox.analytics";s:7:"private";b:1;s:7:"summary";s:0:"";}s:30:"dojox.analytics.onPushComplete";a:5:{s:9:"prototype";s:15:"dojox.analytics";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:7:"results";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:168:" if(this._inTransit){ delete this._inTransit; } if(this._data.length > 0){ this.schedulePusher(this.inTransitRetry); }else{ this.schedulePusher(); }";s:7:"summary";s:95:"If our data push was successfully, remove the _inTransit data and schedule the next parser run.";}s:21:"dojox.analytics._base";a:3:{s:4:"type";s:6:"Object";s:7:"private";b:1;s:7:"summary";s:0:"";}s:5:"dojox";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}}