source: [view]
request._countResponse = null;
request._dataResponse = null;
request._aborted = false;
request.abort = function(){
if(!request._aborted){
request._aborted = true;
if(request._dataHandle && request._dataHandle.cancel){
request._dataHandle.cancel();
}
if(request._countHandle && request._countHandle.cancel){
request._countHandle.cancel();
}
}
};
// Only make the call for data if onItem or onComplete is used. Otherwise, onBegin will only
// require the total row count.
if(request.onItem || request.onComplete){
var content = this._parameters || {};
if(request.start){
if(request.start < 0){
throw new Error("dojox.data.SnapLogicStore: request start value must be 0 or greater");
}
content['sn.start'] = request.start + 1;
}
if(request.count){
if(request.count < 0){
throw new Error("dojox.data.SnapLogicStore: request count value 0 or greater");
}
content['sn.limit'] = request.count;
}
content['sn.content_type'] = 'application/javascript';
var store = this;
var handler = function(response, ioArgs){
if(response instanceof Error){
store._fetchHandler(response, request);
}
};
var getArgs = {
url: this.url,
content: content,
// preventCache: true,
timeout: 60000, //Starting a pipeline can take a long time.
callbackParamName: "sn.stream_header",
handle: dojo.hitch(this, "_partHandler", request, this.Parts.DATA)
};
request._dataHandle = dojo.io.script.get(getArgs);
}
if(request.onBegin){
var content = {};
content['sn.count'] = 'records';
content['sn.content_type'] = 'application/javascript';
var getArgs = {
url: this.url,
content: content,
timeout: 60000,
callbackParamName: "sn.stream_header",
handle: dojo.hitch(this, "_partHandler", request, this.Parts.COUNT)
};
request._countHandle = dojo.io.script.get(getArgs);
}
return request; // Object