costin 02/05/28 15:47:43 Modified: jk/native2/common jk_env.c jk_handler_response.c jk_workerEnv.c jk/native2/include jk_bean.h Log: Few other small fixes. Save the index of the component in the object table. All jk components are long-lived, and this will make a faster dispatch. Revision Changes Path 1.30 +10 -1 jakarta-tomcat-connectors/jk/native2/common/jk_env.c Index: jk_env.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_env.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- jk_env.c 27 May 2002 21:56:19 -0000 1.29 +++ jk_env.c 28 May 2002 22:47:43 -0000 1.30 @@ -206,6 +206,7 @@ jk_bean_t *result=NULL; jk_pool_t *workerPool; char *name; + int i; if( localName!=NULL ) result=env->getBean2( env, type, localName ); @@ -307,7 +308,15 @@ } jk_env_globalEnv->_objects->put( env, jk_env_globalEnv->_objects, result->name, result, NULL ); - + + for( i=jk_env_globalEnv->_objects->size( env, jk_env_globalEnv->_objects ) - 1; i>=0 ; i-- ) { + if( jk_env_globalEnv->_objects->valueAt( env, jk_env_globalEnv->_objects, i ) == result ) { + fprintf( stderr, "Component id %s= %d\n", result->name, i ); + result->objId=i; + break; + } + } + if( strcmp(localName,"")==0 ) { /* "" for local name is used as 'default'. Allow "type" as an alias for "type:" */ 1.20 +22 -2 jakarta-tomcat-connectors/jk/native2/common/jk_handler_response.c Index: jk_handler_response.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_handler_response.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- jk_handler_response.c 15 May 2002 19:45:45 -0000 1.19 +++ jk_handler_response.c 28 May 2002 22:47:43 -0000 1.20 @@ -251,7 +251,26 @@ return JK_HANDLER_FATAL; } -int JK_METHOD jk2_handler_response_init( jk_env_t *env, jk_handler_t *_this, +static int JK_METHOD jk2_handler_response_invoke(jk_env_t *env, jk_bean_t *bean, jk_endpoint_t *ep, + int code, jk_msg_t *msg, int raw) +{ + void *target=ep->currentRequest; + + switch( code ) { + case JK_HANDLE_AJP13_SEND_HEADERS: + return jk2_handler_startResponse( env, target, ep, msg ); + case JK_HANDLE_AJP13_SEND_BODY_CHUNK: + return jk2_handler_sendChunk(env, target, ep, msg ); + case JK_HANDLE_AJP13_END_RESPONSE: + return jk2_handler_endResponse(env, target, ep, msg ); + case JK_HANDLE_AJP13_GET_BODY_CHUNK: + return jk2_handler_getChunk(env, target, ep, msg ); + } + return JK_OK; +} + + +static int JK_METHOD jk2_handler_response_init( jk_env_t *env, jk_handler_t *_this, jk_workerEnv_t *wEnv) { wEnv->registerHandler( env, wEnv, "handler.response", @@ -282,7 +301,8 @@ h=(jk_handler_t *)pool->calloc( env, pool, sizeof( jk_handler_t)); h->init=jk2_handler_response_init; - + result->invoke=jk2_handler_response_invoke; + result->object=h; return JK_OK; 1.46 +6 -1 jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c Index: jk_workerEnv.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c,v retrieving revision 1.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 --- jk_workerEnv.c 26 May 2002 07:30:01 -0000 1.45 +++ jk_workerEnv.c 28 May 2002 22:47:43 -0000 1.46 @@ -59,7 +59,7 @@ * Description: Workers controller * * Author: Gal Shachor <[EMAIL PROTECTED]> * * Author: Henri Gomez <[EMAIL PROTECTED]> * - * Version: $Revision: 1.45 $ * + * Version: $Revision: 1.46 $ * ***************************************************************************/ #include "jk_env.h" @@ -472,6 +472,11 @@ if( ep->worker->mbean->debug > 10 ) ep->request->dump( env, msg, "Received" ); + /* XXX Use this _only_ for backward compatibility. + invoke() and jk_bean should be used, probably with a first parameter + indicating the target component and a second param indicating the + code ( local to each component ). + */ code = (int)msg->getByte(env, msg); rc=jk2_workerEnv_dispatch( env, wEnv, req, ep, code, msg ); 1.5 +4 -0 jakarta-tomcat-connectors/jk/native2/include/jk_bean.h Index: jk_bean.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_bean.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- jk_bean.h 28 May 2002 22:37:11 -0000 1.4 +++ jk_bean.h 28 May 2002 22:47:43 -0000 1.5 @@ -122,7 +122,11 @@ */ char *type; + /** The index in the workerEnv table */ int id; + + /** The index in the env object table */ + int objId; /* Full name of the object ( "channel.socket:localhost:8080" ). * Used to construct the object.
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>