store function instead of request name (extensions!!!)

This commit is contained in:
sidorares 2011-08-02 15:22:09 +10:00
parent bf2c603be7
commit 501cc67fce

View file

@ -124,7 +124,7 @@ XClient.prototype.importRequestsFromTemplates = function(target, reqs)
var requestArguments = reqPack[1]; var requestArguments = reqPack[1];
if (callback) if (callback)
this.replies[this.seq_num] = [reqName, callback]; this.replies[this.seq_num] = [reqReplTemplate[1], callback];
client.pack_stream.pack(format, requestArguments); client.pack_stream.pack(format, requestArguments);
var b = client.pack_stream.write_queue[0]; var b = client.pack_stream.write_queue[0];
@ -140,9 +140,8 @@ XClient.prototype.importRequestsFromTemplates = function(target, reqs)
requestArguments.push(args[a]); requestArguments.push(args[a]);
if (callback) if (callback)
this.replies[this.seq_num] = [reqName, callback]; this.replies[this.seq_num] = [reqReplTemplate[1], callback];
//console.log([format, requestArguments]);
client.pack_stream.pack(format, requestArguments); client.pack_stream.pack(format, requestArguments);
client.pack_stream.flush(); client.pack_stream.flush();
} else { } else {
@ -214,6 +213,7 @@ XClient.prototype.expectReplyHeader = function()
'CCSL', function(res) { 'CCSL', function(res) {
var type = res[0]; var type = res[0];
var seq_num = res[2]; var seq_num = res[2];
if (type == 0) if (type == 0)
{ {
var error_code = res[1]; var error_code = res[1];
@ -233,7 +233,6 @@ XClient.prototype.expectReplyHeader = function()
error.minorOpcode = res[1]; error.minorOpcode = res[1];
error.majorOpcode = res[2]; error.majorOpcode = res[2];
} }
//console.log(error);
var handler = client.replies[seq_num]; var handler = client.replies[seq_num];
if (handler) { if (handler) {
var callback = handler[1]; var callback = handler[1];
@ -268,12 +267,11 @@ XClient.prototype.expectReplyHeader = function()
var handler = client.replies[seq_num]; var handler = client.replies[seq_num];
if (handler) { if (handler) {
var reqName = handler[0]; var unpack = handler[0];
var req = coreRequests[reqName];
var unpack = req[1];
var result = unpack( data, opt_data ); var result = unpack( data, opt_data );
var callback = handler[1]; var callback = handler[1];
callback(result); callback(result);
// TODO: add multiple replies flag and delete handler only after last reply (eg ListFontsWithInfo)
delete client.replies[seq_num]; delete client.replies[seq_num];
} }
// wait for new packet from server // wait for new packet from server