mturk       2005/06/18 09:36:15

  Modified:    jni/java/org/apache/tomcat/jni Socket.java
               jni/native/include tcn.h
               jni/native/src network.c
  Log:
  Add Socket.get method for obtaining private struct members.
  
  Revision  Changes    Path
  1.18      +21 -1     
jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/Socket.java
  
  Index: Socket.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/Socket.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- Socket.java       18 Jun 2005 08:03:21 -0000      1.17
  +++ Socket.java       18 Jun 2005 16:36:15 -0000      1.18
  @@ -97,6 +97,12 @@
       public static final int APR_LOCAL  = 0;
       public static final int APR_REMOTE = 1;
   
  +    /* Socket.get types */
  +    public static final int SOCKET_GET_POOL = 0;
  +    public static final int SOCKET_GET_IMPL = 1;
  +    public static final int SOCKET_GET_APRS = 2;
  +    public static final int SOCKET_GET_TYPE = 3;
  +
       /**
        * Create a socket.
        * @param family The address family of the socket (e.g., APR_INET).
  @@ -468,4 +474,18 @@
       public static native long pool(long thesocket)
           throws Exception;
   
  +    /**
  +     * Private method for geting the socket struct members
  +     * @param socket The soocket to use
  +     * @param what Struct member to obtain
  +     * <PRE>
  +     * SOCKET_GET_POOL  - The socket pool
  +     * SOCKET_GET_IMPL  - The socket implementation object
  +     * SOCKET_GET_APRS  - APR socket
  +     * SOCKET_GET_TYPE  - Socket type
  +     * </PRE>
  +     * @return The stucture member address
  +     */
  +    private static native long get(long socket, int what);
  +
   }
  
  
  
  1.25      +6 -1      jakarta-tomcat-connectors/jni/native/include/tcn.h
  
  Index: tcn.h
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/include/tcn.h,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- tcn.h     18 Jun 2005 14:34:28 -0000      1.24
  +++ tcn.h     18 Jun 2005 16:36:15 -0000      1.25
  @@ -113,6 +113,11 @@
   #define TCN_SOCKET_UNIX     3
   #define TCN_SOCKET_NTPIPE   4
   
  +#define TCN_SOCKET_GET_POOL 0
  +#define TCN_SOCKET_GET_IMPL 1
  +#define TCN_SOCKET_GET_APRS 2
  +#define TCN_SOCKET_GET_TYPE 3
  +
   typedef struct {
       apr_pool_t   *pool;
       apr_socket_t *sock;
  
  
  
  1.37      +24 -1     jakarta-tomcat-connectors/jni/native/src/network.c
  
  Index: network.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/network.c,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- network.c 18 Jun 2005 16:07:59 -0000      1.36
  +++ network.c 18 Jun 2005 16:36:15 -0000      1.37
  @@ -278,6 +278,29 @@
       return P2J(n);
   }
   
  +TCN_IMPLEMENT_CALL(jlong, Socket, get)(TCN_STDARGS, jlong sock, jint what)
  +{
  +    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
  +    UNREFERENCED_STDARGS;
  +    TCN_ASSERT(sock != 0);
  +
  +    switch (what) {
  +        case TCN_SOCKET_GET_POOL:
  +            return P2J(s->pool);
  +        break;
  +        case TCN_SOCKET_GET_IMPL:
  +            return P2J(s->opaque);
  +        break;
  +        case TCN_SOCKET_GET_APRS:
  +            return P2J(s->sock);
  +        break;
  +        case TCN_SOCKET_GET_TYPE:
  +            return P2J(s->type);
  +        break;
  +    }
  +    return 0;
  +}
  +
   TCN_IMPLEMENT_CALL(jint, Socket, shutdown)(TCN_STDARGS, jlong sock,
                                              jint how)
   {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to