mturk 2005/01/14 05:47:23 Added: jni/native/include tcn.h tcn_version.h Log: Initial upload Revision Changes Path 1.1 jakarta-tomcat-connectors/jni/native/include/tcn.h Index: tcn.h =================================================================== /* Copyright 2000-2004 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. */ #ifndef TCN_H #define TCN_H #include <jni.h> #ifdef min #undef min #endif #define min(a, b) ((a) < (b) ? (a) : (b)) #define APR_MAX_IOVEC_SIZE 1024 #define TCN_FINFO_CLASS "org/apache/tomcat/jni/FileInfo" #define TCN_AINFO_CLASS "org/apache/tomcat/jni/Sockaddr" #define TCN_ERROR_CLASS "org/apache/tomcat/jni/Error" #define UNREFERENCED(P) (P) #define P2J(P) ((jlong)(long)(void *)P) #define J2P(P, T) ((T)(void *)(long)P) /* On stack buffer size */ #define TCN_BUFFER_SZ 8192 #define TCN_STDARGS JNIEnv *e, jobject o #define UNREFERENCED_STDARGS { e; o; } #define TCN_IMPLEMENT_CALL(RT, CL, FN) \ JNIEXPORT RT JNICALL Java_org_apache_tomcat_jni_##CL##_##FN void tcn_Throw(JNIEnv *env, const char *cname, const char *msg); void tcn_ThrowException(JNIEnv *env, const char *msg); void tcn_ThrowAPRException(JNIEnv *env, apr_status_t err); jstring tcn_new_string(JNIEnv *env, const char *str); char *tcn_get_string(JNIEnv *env, jstring jstr); char *tcn_dup_string(JNIEnv *env, jstring jstr); apr_status_t tcn_load_finfo_class(JNIEnv *env); apr_status_t tcn_load_ainfo_class(JNIEnv *env); #define J2S(V) c##V #define J2L(V) p##V #define J2T(T) (apr_time_t)((T)) #if 1 #define TCN_BEGIN_MACRO { #define TCN_END_MACRO } (void *)(0) #else #define TCN_BEGIN_MACRO do { #define TCN_END_MACRO } while (0) #endif #define TCN_ALLOC_CSTRING(V) \ const char *c##V = V ? (const char *)((*e)->GetStringUTFChars(e, V, 0)) : NULL #define TCN_FREE_CSTRING(V) \ if (c##V) (*e)->ReleaseStringUTFChars(e, V, c##V) #define TCN_ALLOC_JSTRING(V) \ char *c##V = tcn_get_string(e, (V)) #define AJP_TO_JSTRING(V) (*e)->NewStringUTF((e), (V)) #define TCN_FREE_JSTRING(V) \ TCN_BEGIN_MACRO \ if (c##V) \ free(c##V); \ TCN_END_MACRO #define TCN_THROW_IF_ERR(x, r) \ TCN_BEGIN_MACRO \ apr_status_t R = (x); \ if (R != APR_SUCCESS) { \ tcn_ThrowAPRException(e, R); \ (r) = 0; \ goto cleanup; \ } \ TCN_END_MACRO #define TCN_THROW_OS_ERROR(E) \ tcn_ThrowAPRException((E), apr_get_os_error()) #define TCN_LOAD_CLASS(E, C, N, R) \ TCN_BEGIN_MACRO \ jclass _##C = (*(E))->FindClass((E), N); \ if (_##C == NULL) { \ (*(E))->ExceptionClear((E)); \ return R; \ } \ C = (*(E))->NewGlobalRef((E), _##C); \ (*(E))->DeleteLocalRef((E), _##C); \ TCN_END_MACRO #define TCN_UNLOAD_CLASS(E, C) \ (*(E))->DeleteGlobalRef((E), (C)) #define TCN_IS_NULL(E, O) \ ((*(E))->IsSameObject((E), (O), NULL) == JNI_TRUE) #define TCN_GET_METHOD(E, C, M, N, S, R) \ TCN_BEGIN_MACRO \ M = (*(E))->GetMethodID((E), C, N, S); \ if (M == NULL) { \ return R; \ } \ TCN_END_MACRO struct tcn_callback { JNIEnv *env; jobject obj; jmethodID mid; void *opaque; }; typedef struct tcn_callback tcn_callback_t; #endif /* TCN_H */ 1.1 jakarta-tomcat-connectors/jni/native/include/tcn_version.h Index: tcn_version.h =================================================================== /* Copyright 2000-2004 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. */ #ifndef TCN_VERSION_H #define TCN_VERSION_H #include "apr_version.h" #include "tcn.h" #ifdef __cplusplus extern "C" { #endif /** * @file tcn_version.h * @brief * * Tomcat Native Version * * There are several different mechanisms for accessing the version. There * is a string form, and a set of numbers; in addition, there are constants * which can be compiled into your application, and you can query the library * being used for its actual version. * * Note that it is possible for an application to detect that it has been * compiled against a different version of APU by use of the compile-time * constants and the use of the run-time query function. * * TCN version numbering follows the guidelines specified in: * * http://apr.apache.org/versioning.html */ /* The numeric compile-time version constants. These constants are the * authoritative version numbers for TCN. */ /** major version * Major API changes that could cause compatibility problems for older * programs such as structure size changes. No binary compatibility is * possible across a change in the major version. */ #define TCN_MAJOR_VERSION 1 /** * Minor API changes that do not cause binary compatibility problems. * Should be reset to 0 when upgrading TCN_MAJOR_VERSION */ #define TCN_MINOR_VERSION 1 /** patch level */ #define TCN_PATCH_VERSION 0 /** * This symbol is defined for internal, "development" copies of TCN. This * symbol will be #undef'd for releases. */ #define TCN_IS_DEV_VERSION /** The formatted string of APU's version */ #define TCN_VERSION_STRING \ APR_STRINGIFY(TCN_MAJOR_VERSION) "."\ APR_STRINGIFY(TCN_MINOR_VERSION) "."\ APR_STRINGIFY(TCN_PATCH_VERSION)\ TCN_IS_DEV_STRING /** Internal: string form of the "is dev" flag */ #ifdef TCN_IS_DEV_VERSION #define TCN_IS_DEV_STRING "-dev" #else #define TCN_IS_DEV_STRING "" #endif #ifdef __cplusplus } #endif #endif /* TCN_VERSION_H */
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]