1 sdump('D_TRACE','Loading ses.js\n');
3 //////////////////////////////////////////////////////////////////////////////
4 // Sessions, Requests, Methods, Oh My
6 // These wrap Bill's RemoteRequest.js
8 function user_request(app,name,params,f) {
11 user_async_request(app,name,params,f);
16 sdump('D_SES','=-=-=-=-= user_request("'+app+'","'+name+'",'+js2JSON(params)+')\n');
17 var request = new RemoteRequest( app, name );
18 for(var index in params) {
19 request.addParam(params[index]);
23 result.push( request.getResultObject() );
24 sdump('D_SES_RESULT','=-=-= result = ' + js2JSON(result[0]) + '\n');
27 if (instanceOf(E,perm_ex)) {
28 alert('permission exception: ' + js2JSON(E));
35 function user_async_request(app,name,params,func) {
36 sdump('D_SES','=-=-=-=-= user_async_request("'+app+'","'+name+'",'+js2JSON(params)+',func)\n');
37 sdump('D_SES_FUNC','func = ' + func + '\n');
38 var request = new RemoteRequest( app, name );
39 for(var index in params) {
40 request.addParam(params[index]);
42 request.setCompleteCallback(func);
46 function sample_func(request) {
48 result.push( request.getResultObject() );
49 /* This callback would be called within the code for the Request object, so you would never see
50 a return value. Instead, you should _do_ something with the data. */
54 //////////////////////////////////////////////////////////////////////////////
55 // The functions below were wrappers for the old jabber way of doing things
57 function handle_session(app) {
58 //if( ses == null || ! AppSession.transport_handle.connected() ) {
59 sdump('D_TRACE','Calling new AppSession : ' + timer_elapsed('cat') + '\n');
60 ses = new AppSession( app );
61 sdump('D_SES', 'after AppSession ses = ' + (ses.state) + '\n' );
62 if( ! ses.connect() ) {
63 sdump('D_SES', 'after ses.connect ses = ' + js2JSON(ses.state) + '\n' );
64 throw( "Connect timed out!" );
66 sdump('D_SES', 'after ses.connect ses = ' + js2JSON(ses.state) + '\n' );
67 sdump('D_TRACE','Finished new AppSession : ' + timer_elapsed('cat') + '\n');
71 function handle_request(ses,meth) {
74 sdump('D_TRACE','Entering handle_request : ' + timer_elapsed('cat') + '\n');
75 sdump('D_SES','Calling new AppRequest : ' + timer_elapsed('cat') + '\n');
77 var req = new AppRequest( ses, meth );
79 sdump('D_SES','Finished new AppRequest : ' + timer_elapsed('cat') + '\n');
80 sdump('D_SES','Calling new req.make_request() : ' + timer_elapsed('cat') + '\n');
84 sdump('D_SES', 'after req.make_request ses = ' + js2JSON(ses.state) + '\n' );
85 sdump('D_SES','Finished new req.make_request() : ' + timer_elapsed('cat') + '\n');
87 var result = new Array(); var resp;
89 sdump('D_SES','Looping on req.recv and resp.getContent(): ' + timer_elapsed('cat') + '\n');
91 while (resp = req.recv( 30000 ) ) {
92 sdump('D_SES', '\tafter req.recv ses = ' + js2JSON(ses.state) + ' : req.is_complete = ' + req.is_complete + '\n' );
93 var r = resp.getContent();
94 if (r != 'keepalive') {
99 sdump('D_SES','Finished with req.recv and resp.getContent(): ' + timer_elapsed('cat') + '\n');
101 if (result.length == 0) {
102 if ( req.is_complete ) {
103 result.push("NO RESPONSE, REQUEST COMPLETE");
104 sdump('D_SES',"NO RESPONSE, REQUEST COMPLETE\n");
106 result.push("NO RESPONSE, REQUEST TIMEOUT");
107 sdump('D_SES',"NO RESPONSE, REQUEST TIMEOUT\n");
111 sdump('D_SES', 'after req.finish() ses = ' + js2JSON(ses.state) + '\n' );
112 sdump('D_SES','Exiting handle_request : ' + timer_elapsed('cat') + '\n');
116 function _user_request(app,name,params) {
118 sdump('D_SES','Entering user_request : ' + timer_elapsed('cat') + '\n');
119 sdump('D_SES','app='+app+' name='+name+'\n');
126 meth = new oilsMethod( name, params );
128 throw('No method name to execute.');
131 var result = handle_request(ses,meth);
134 sdump('D_SES','ses.disconnect\n');
136 sdump('D_SES', 'after ses.disconnect() ses = ' + js2JSON(ses.state) + '\n' );
138 sdump('D_SES', 'after ses.destroy() ses = ' + js2JSON(ses.state) + '\n' );
141 sdump('D_SES','Exiting user_request : ' + timer_elapsed('cat') + '\n');
145 sdump('D_SES','Exiting user_request : ' + timer_elapsed('cat') + '\n');
146 alert( pretty_print( js2JSON(E) ) );