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 2005/01/14 14:47:23 UTC
cvs commit: jakarta-tomcat-connectors/jni/native/include tcn.h tcn_version.h
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: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org