You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2006/07/08 09:18:56 UTC

svn commit: r420070 - in /tomcat/connectors/trunk/jni: java/org/apache/tomcat/jni/Thread.java native/libtcnative.dsp native/src/address.c native/src/multicast.c native/src/network.c native/src/os.c native/src/thread.c native/tcnative.dsp

Author: mturk
Date: Sat Jul  8 00:18:55 2006
New Revision: 420070

URL: http://svn.apache.org/viewvc?rev=420070&view=rev
Log:
Move API specific code to the separate files.

Added:
    tomcat/connectors/trunk/jni/java/org/apache/tomcat/jni/Thread.java
    tomcat/connectors/trunk/jni/native/src/address.c
    tomcat/connectors/trunk/jni/native/src/multicast.c
    tomcat/connectors/trunk/jni/native/src/thread.c
Modified:
    tomcat/connectors/trunk/jni/native/libtcnative.dsp
    tomcat/connectors/trunk/jni/native/src/network.c
    tomcat/connectors/trunk/jni/native/src/os.c
    tomcat/connectors/trunk/jni/native/tcnative.dsp

Added: tomcat/connectors/trunk/jni/java/org/apache/tomcat/jni/Thread.java
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/java/org/apache/tomcat/jni/Thread.java?rev=420070&view=auto
==============================================================================
--- tomcat/connectors/trunk/jni/java/org/apache/tomcat/jni/Thread.java (added)
+++ tomcat/connectors/trunk/jni/java/org/apache/tomcat/jni/Thread.java Sat Jul  8 00:18:55 2006
@@ -0,0 +1,32 @@
+/*
+ *  Copyright 2000-2005 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.tomcat.jni;
+
+/** Thread
+ *
+ * @author Mladen Turk
+ * @version $Revision: 300969 $, $Date: 2005-07-12 16:56:11 +0200 (uto, 12 srp 2005) $
+ */
+
+public class Thread {
+    
+    /**
+     * Get the current thread ID handle.
+     */
+    public static native long current();    
+
+}
\ No newline at end of file

Modified: tomcat/connectors/trunk/jni/native/libtcnative.dsp
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/libtcnative.dsp?rev=420070&r1=420069&r2=420070&view=diff
==============================================================================
--- tomcat/connectors/trunk/jni/native/libtcnative.dsp (original)
+++ tomcat/connectors/trunk/jni/native/libtcnative.dsp Sat Jul  8 00:18:55 2006
@@ -92,6 +92,10 @@
 # PROP Default_Filter ""
 # Begin Source File
 
+SOURCE=.\src\address.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\src\dir.c
 # End Source File
 # Begin Source File
@@ -124,6 +128,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\src\multicast.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\src\network.c
 # End Source File
 # Begin Source File
@@ -165,6 +173,10 @@
 # Begin Source File
 
 SOURCE=.\src\stdlib.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\thread.c
 # End Source File
 # Begin Source File
 

Added: tomcat/connectors/trunk/jni/native/src/address.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/src/address.c?rev=420070&view=auto
==============================================================================
--- tomcat/connectors/trunk/jni/native/src/address.c (added)
+++ tomcat/connectors/trunk/jni/native/src/address.c Sat Jul  8 00:18:55 2006
@@ -0,0 +1,105 @@
+/* Copyright 2000-2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ *
+ * @author Mladen Turk
+ * @version $Revision: 416783 $, $Date: 2006-06-23 20:06:15 +0200 (pet, 23 lip 2006) $
+ */
+
+#include "tcn.h"
+
+TCN_IMPLEMENT_CALL(jlong, Address, info)(TCN_STDARGS,
+                                         jstring hostname,
+                                         jint family, jint port,
+                                         jint flags, jlong pool)
+{
+    apr_pool_t *p = J2P(pool, apr_pool_t *);
+    TCN_ALLOC_CSTRING(hostname);
+    apr_sockaddr_t *sa = NULL;
+    apr_int32_t f;
+
+
+    UNREFERENCED(o);
+    GET_S_FAMILY(f, family);
+    TCN_THROW_IF_ERR(apr_sockaddr_info_get(&sa,
+            J2S(hostname), f, (apr_port_t)port,
+            (apr_int32_t)flags, p), sa);
+
+cleanup:
+    TCN_FREE_CSTRING(hostname);
+    return P2J(sa);
+}
+
+TCN_IMPLEMENT_CALL(jstring, Address, getnameinfo)(TCN_STDARGS,
+                                                  jlong sa, jint flags)
+{
+    apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *);
+    char *hostname;
+
+    UNREFERENCED(o);
+    if (apr_getnameinfo(&hostname, s, (apr_int32_t)flags) == APR_SUCCESS)
+        return AJP_TO_JSTRING(hostname);
+    else
+        return NULL;
+}
+
+TCN_IMPLEMENT_CALL(jstring, Address, getip)(TCN_STDARGS, jlong sa)
+{
+    apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *);
+    char *ipaddr;
+
+    UNREFERENCED(o);
+    if (apr_sockaddr_ip_get(&ipaddr, s) == APR_SUCCESS)
+        return AJP_TO_JSTRING(ipaddr);
+    else
+        return NULL;
+}
+
+TCN_IMPLEMENT_CALL(jlong, Address, get)(TCN_STDARGS, jint which,
+                                        jlong sock)
+{
+    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+    apr_sockaddr_t *sa = NULL;
+
+    UNREFERENCED(o);
+    TCN_THROW_IF_ERR(apr_socket_addr_get(&sa,
+                        (apr_interface_e)which, s->sock), sa);
+cleanup:
+    return P2J(sa);
+}
+
+TCN_IMPLEMENT_CALL(jint, Address, equal)(TCN_STDARGS,
+                                         jlong a, jlong b)
+{
+    apr_sockaddr_t *sa = J2P(a, apr_sockaddr_t *);
+    apr_sockaddr_t *sb = J2P(b, apr_sockaddr_t *);
+
+    UNREFERENCED_STDARGS;
+    return apr_sockaddr_equal(sa, sb) ? JNI_TRUE : JNI_FALSE;
+}
+
+TCN_IMPLEMENT_CALL(jint, Address, getservbyname)(TCN_STDARGS,
+                                                 jlong sa, jstring servname)
+{
+    apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *);
+    TCN_ALLOC_CSTRING(servname);
+    apr_status_t rv;
+
+    UNREFERENCED(o);
+    rv = apr_getservbyname(s, J2S(servname));
+    TCN_FREE_CSTRING(servname);
+    return (jint)rv;
+}

Added: tomcat/connectors/trunk/jni/native/src/multicast.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/src/multicast.c?rev=420070&view=auto
==============================================================================
--- tomcat/connectors/trunk/jni/native/src/multicast.c (added)
+++ tomcat/connectors/trunk/jni/native/src/multicast.c Sat Jul  8 00:18:55 2006
@@ -0,0 +1,71 @@
+/* Copyright 2000-2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ *
+ * @author Mladen Turk
+ * @version $Revision: 416783 $, $Date: 2006-06-23 20:06:15 +0200 (pet, 23 lip 2006) $
+ */
+
+#include "tcn.h"
+
+TCN_IMPLEMENT_CALL(jint, Mulicast, join)(TCN_STDARGS,
+                                         jlong sock, jlong join,
+                                         jlong iface, jlong source)
+{
+    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+    apr_sockaddr_t *ja = J2P(join, apr_sockaddr_t *);
+    apr_sockaddr_t *ia = J2P(iface, apr_sockaddr_t *);
+    apr_sockaddr_t *sa = J2P(source, apr_sockaddr_t *);
+    UNREFERENCED_STDARGS;
+    return (jint)apr_mcast_join(s->sock, ja, ia, sa);
+};
+
+TCN_IMPLEMENT_CALL(jint, Mulicast, leave)(TCN_STDARGS,
+                                          jlong sock, jlong addr,
+                                          jlong iface, jlong source)
+{
+    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+    apr_sockaddr_t *aa = J2P(addr, apr_sockaddr_t *);
+    apr_sockaddr_t *ia = J2P(iface, apr_sockaddr_t *);
+    apr_sockaddr_t *sa = J2P(source, apr_sockaddr_t *);
+    UNREFERENCED_STDARGS;
+    return (jint)apr_mcast_leave(s->sock, aa, ia, sa);
+};
+
+TCN_IMPLEMENT_CALL(jint, Mulicast, hops)(TCN_STDARGS,
+                                         jlong sock, jint ttl)
+{
+    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+    UNREFERENCED_STDARGS;
+    return (jint)apr_mcast_hops(s->sock, (apr_byte_t)ttl);
+};
+
+TCN_IMPLEMENT_CALL(jint, Mulicast, loopback)(TCN_STDARGS,
+                                             jlong sock, jboolean opt)
+{
+    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+    UNREFERENCED_STDARGS;
+    return (jint)apr_mcast_loopback(s->sock, opt == JNI_TRUE ? 1 : 0);
+};
+
+TCN_IMPLEMENT_CALL(jint, Mulicast, ointerface)(TCN_STDARGS,
+                                               jlong sock, jlong iface)
+{
+    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+    apr_sockaddr_t *ia = J2P(iface, apr_sockaddr_t *);
+    UNREFERENCED_STDARGS;
+    return (jint)apr_mcast_interface(s->sock, ia);
+};

Modified: tomcat/connectors/trunk/jni/native/src/network.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/src/network.c?rev=420070&r1=420069&r2=420070&view=diff
==============================================================================
--- tomcat/connectors/trunk/jni/native/src/network.c (original)
+++ tomcat/connectors/trunk/jni/native/src/network.c Sat Jul  8 00:18:55 2006
@@ -22,7 +22,9 @@
 #include "tcn.h"
 
 #ifdef TCN_DO_STATISTICS
+
 #include "apr_atomic.h"
+
 static volatile apr_uint32_t sp_created  = 0;
 static volatile apr_uint32_t sp_closed   = 0;
 static volatile apr_uint32_t sp_cleared  = 0;
@@ -45,25 +47,6 @@
 static volatile apr_uint32_t sf_num_send = 0;
 static volatile apr_off_t    sf_tot_send = 0;
 
-#endif
-
-#if  !APR_HAVE_IPV6
-#define APR_INET6 APR_INET
-#endif
-
-#define GET_S_FAMILY(T, F)           \
-    if (F == 0) T = APR_UNSPEC;      \
-    else if (F == 1) T = APR_INET;   \
-    else if (F == 2) T = APR_INET6;  \
-    else T = F
-
-#define GET_S_TYPE(T, F)             \
-    if (F == 0) T = SOCK_STREAM;     \
-    else if (F == 1) T = SOCK_DGRAM; \
-    else T = F
-
-#ifdef TCN_DO_STATISTICS
-
 void sp_network_dump_statistics()
 {
     fprintf(stderr, "Network Statistics ......\n");
@@ -90,90 +73,7 @@
 
 }
 
-#endif
-
-TCN_IMPLEMENT_CALL(jlong, Address, info)(TCN_STDARGS,
-                                         jstring hostname,
-                                         jint family, jint port,
-                                         jint flags, jlong pool)
-{
-    apr_pool_t *p = J2P(pool, apr_pool_t *);
-    TCN_ALLOC_CSTRING(hostname);
-    apr_sockaddr_t *sa = NULL;
-    apr_int32_t f;
-
-
-    UNREFERENCED(o);
-    GET_S_FAMILY(f, family);
-    TCN_THROW_IF_ERR(apr_sockaddr_info_get(&sa,
-            J2S(hostname), f, (apr_port_t)port,
-            (apr_int32_t)flags, p), sa);
-
-cleanup:
-    TCN_FREE_CSTRING(hostname);
-    return P2J(sa);
-}
-
-TCN_IMPLEMENT_CALL(jstring, Address, getnameinfo)(TCN_STDARGS,
-                                                  jlong sa, jint flags)
-{
-    apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *);
-    char *hostname;
-
-    UNREFERENCED(o);
-    if (apr_getnameinfo(&hostname, s, (apr_int32_t)flags) == APR_SUCCESS)
-        return AJP_TO_JSTRING(hostname);
-    else
-        return NULL;
-}
-
-TCN_IMPLEMENT_CALL(jstring, Address, getip)(TCN_STDARGS, jlong sa)
-{
-    apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *);
-    char *ipaddr;
-
-    UNREFERENCED(o);
-    if (apr_sockaddr_ip_get(&ipaddr, s) == APR_SUCCESS)
-        return AJP_TO_JSTRING(ipaddr);
-    else
-        return NULL;
-}
-
-TCN_IMPLEMENT_CALL(jlong, Address, get)(TCN_STDARGS, jint which,
-                                        jlong sock)
-{
-    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
-    apr_sockaddr_t *sa = NULL;
-
-    UNREFERENCED(o);
-    TCN_THROW_IF_ERR(apr_socket_addr_get(&sa,
-                        (apr_interface_e)which, s->sock), sa);
-cleanup:
-    return P2J(sa);
-}
-
-TCN_IMPLEMENT_CALL(jint, Address, equal)(TCN_STDARGS,
-                                         jlong a, jlong b)
-{
-    apr_sockaddr_t *sa = J2P(a, apr_sockaddr_t *);
-    apr_sockaddr_t *sb = J2P(b, apr_sockaddr_t *);
-
-    UNREFERENCED_STDARGS;
-    return apr_sockaddr_equal(sa, sb) ? JNI_TRUE : JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(jint, Address, getservbyname)(TCN_STDARGS,
-                                                 jlong sa, jstring servname)
-{
-    apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *);
-    TCN_ALLOC_CSTRING(servname);
-    apr_status_t rv;
-
-    UNREFERENCED(o);
-    rv = apr_getservbyname(s, J2S(servname));
-    TCN_FREE_CSTRING(servname);
-    return (jint)rv;
-}
+#endif /* TCN_DO_STATISTICS */
 
 static apr_status_t sp_socket_cleanup(void *data)
 {
@@ -1308,52 +1208,3 @@
     TCN_FREE_CSTRING(key);
     return rv;
 }
-
-TCN_IMPLEMENT_CALL(jint, Mulicast, join)(TCN_STDARGS,
-                                         jlong sock, jlong join,
-                                         jlong iface, jlong source)
-{
-    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
-    apr_sockaddr_t *ja = J2P(join, apr_sockaddr_t *);
-    apr_sockaddr_t *ia = J2P(iface, apr_sockaddr_t *);
-    apr_sockaddr_t *sa = J2P(source, apr_sockaddr_t *);
-    UNREFERENCED_STDARGS;
-    return (jint)apr_mcast_join(s->sock, ja, ia, sa);
-};
-
-TCN_IMPLEMENT_CALL(jint, Mulicast, leave)(TCN_STDARGS,
-                                          jlong sock, jlong addr,
-                                          jlong iface, jlong source)
-{
-    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
-    apr_sockaddr_t *aa = J2P(addr, apr_sockaddr_t *);
-    apr_sockaddr_t *ia = J2P(iface, apr_sockaddr_t *);
-    apr_sockaddr_t *sa = J2P(source, apr_sockaddr_t *);
-    UNREFERENCED_STDARGS;
-    return (jint)apr_mcast_leave(s->sock, aa, ia, sa);
-};
-
-TCN_IMPLEMENT_CALL(jint, Mulicast, hops)(TCN_STDARGS,
-                                         jlong sock, jint ttl)
-{
-    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
-    UNREFERENCED_STDARGS;
-    return (jint)apr_mcast_hops(s->sock, (apr_byte_t)ttl);
-};
-
-TCN_IMPLEMENT_CALL(jint, Mulicast, loopback)(TCN_STDARGS,
-                                             jlong sock, jboolean opt)
-{
-    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
-    UNREFERENCED_STDARGS;
-    return (jint)apr_mcast_loopback(s->sock, opt == JNI_TRUE ? 1 : 0);
-};
-
-TCN_IMPLEMENT_CALL(jint, Mulicast, ointerface)(TCN_STDARGS,
-                                               jlong sock, jlong iface)
-{
-    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
-    apr_sockaddr_t *ia = J2P(iface, apr_sockaddr_t *);
-    UNREFERENCED_STDARGS;
-    return (jint)apr_mcast_interface(s->sock, ia);
-};

Modified: tomcat/connectors/trunk/jni/native/src/os.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/src/os.c?rev=420070&r1=420069&r2=420070&view=diff
==============================================================================
--- tomcat/connectors/trunk/jni/native/src/os.c (original)
+++ tomcat/connectors/trunk/jni/native/src/os.c Sat Jul  8 00:18:55 2006
@@ -19,14 +19,8 @@
  * @version $Revision$, $Date$
  */
 
-#include "apr.h"
-#include "apr_pools.h"
-#include "apr_portable.h"
 #include "tcn.h"
 
-
-
-
 TCN_IMPLEMENT_CALL(jstring, OS, defaultEncoding)(TCN_STDARGS, jlong pool)
 {
     apr_pool_t *p = J2P(pool, apr_pool_t *);
@@ -43,8 +37,3 @@
     return AJP_TO_JSTRING(apr_os_locale_encoding(p));
 }
 
-TCN_IMPLEMENT_CALL(jlong, OS, threadCurrent)(TCN_STDARGS)
-{
-    UNREFERENCED_STDARGS;
-    return (jlong)((unsigned long)apr_os_thread_current());
-}

Added: tomcat/connectors/trunk/jni/native/src/thread.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/src/thread.c?rev=420070&view=auto
==============================================================================
--- tomcat/connectors/trunk/jni/native/src/thread.c (added)
+++ tomcat/connectors/trunk/jni/native/src/thread.c Sat Jul  8 00:18:55 2006
@@ -0,0 +1,28 @@
+/* Copyright 2000-2005 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ *
+ * @author Mladen Turk
+ * @version $Revision: 393735 $, $Date: 2006-04-13 08:41:49 +0200 (čet, 13 tra 2006) $
+ */
+
+#include "tcn.h"
+
+TCN_IMPLEMENT_CALL(jlong, Thread, current)(TCN_STDARGS)
+{
+    UNREFERENCED_STDARGS;
+    return (jlong)((unsigned long)apr_os_thread_current());
+}

Modified: tomcat/connectors/trunk/jni/native/tcnative.dsp
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/tcnative.dsp?rev=420070&r1=420069&r2=420070&view=diff
==============================================================================
--- tomcat/connectors/trunk/jni/native/tcnative.dsp (original)
+++ tomcat/connectors/trunk/jni/native/tcnative.dsp Sat Jul  8 00:18:55 2006
@@ -92,6 +92,10 @@
 # PROP Default_Filter ""
 # Begin Source File
 
+SOURCE=.\src\address.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\src\dir.c
 # End Source File
 # Begin Source File
@@ -124,6 +128,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\src\multicast.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\src\network.c
 # End Source File
 # Begin Source File
@@ -165,6 +173,10 @@
 # Begin Source File
 
 SOURCE=.\src\stdlib.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\thread.c
 # End Source File
 # Begin Source File
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org