diff options
Diffstat (limited to 'src/test/imc.js')
-rw-r--r-- | src/test/imc.js | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/src/test/imc.js b/src/test/imc.js index fb7def8..5d911bf 100644 --- a/src/test/imc.js +++ b/src/test/imc.js @@ -7,25 +7,53 @@ var imc = new function(){ var route_call = function(caller_retid,iden,dst,func_name,param){ var i; + var part; + var dst_linkid; + var dst_path; + var caller_linkid; + + var _retcall_cb = function(data){ + func = caller_retidmap[caller_retid]; + if(func == undefined){ + + }else{ + delete caller_retidmap[caller_retid] + func({'stat':true,'data':data}); + } + }; part = dst.split('/'); - dst_linkid = part[1]; - dst_path = part.slice(2).join('/'); + dst_linkid = part[2]; + dst_path = part.slice(3).join('/'); caller_linkid = iden.linkid if(caller_retid.split('/')[0] != caller_linkid){ return false; } - if(caller_linkid == linkid){ + if(dst_linkid == linkid){ + if(caller_linkid == linkid){ + }else{ + + } + + if((func = call_pathmap[dst_path + func_name]) == undefined){ + } + func(param,_retcall_cb); }else{ } }; that.call = function(iden,dst,func_name,param,callback){ - route_call(1234,iden,dst,func_name,param); + caller_retid = linkid + '/' + caller_retidmap.length; + caller_retidmap[caller_retid] = callback; + route_call(caller_retid,iden,dst,func_name,param); + }; + + that.register_call = function(path,func_name,func){ + call_pathmap[path + func_name] = func; }; imc.proxy.instance = that; @@ -33,6 +61,9 @@ var imc = new function(){ }; -var imc_call = function(iden,dst,func_name,param,callback){ - imc.proxy.instance.call(iden,dst,func_name,param,callback) +function imc_call(iden,dst,func_name,param,callback){ + imc.proxy.instance.call(iden,dst,func_name,param,callback); +}; +function imc_register_call(path,func_name,func){ + imc.proxy.instance.register_call(path,func_name,func); }; |