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]>

Reply via email to