Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(236)

Unified Diff: c/info.c

Issue 2842333002: Updated netty-tcnative to version 2.0.0.Final (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « c/file.c ('k') | c/jnilib.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: c/info.c
diff --git a/c/info.c b/c/info.c
deleted file mode 100644
index 222c27e7be9bb11a406eb9b0b6c5e6d361127617..0000000000000000000000000000000000000000
--- a/c/info.c
+++ /dev/null
@@ -1,357 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 $Id: info.c 1442587 2013-02-05 13:49:48Z rjung $
- */
-
-#include "tcn.h"
-#include "apr_file_io.h"
-
-#define DECLARE_FINFO_FIELD(name) static jfieldID _fid##name = NULL
-#define FINFO_FIELD(name) _fid##name
-
-#define GET_FINFO_I(N) \
- _fid##N = (*e)->GetFieldID(e, finfo, #N, "I"); \
- if (_fid##N == NULL) { \
- (*e)->ExceptionClear(e); \
- goto cleanup; \
- } else (void)(0)
-
-#define GET_FINFO_J(N) \
- _fid##N = (*e)->GetFieldID(e, finfo, #N, "J"); \
- if (_fid##N == NULL) { \
- (*e)->ExceptionClear(e); \
- goto cleanup; \
- } else (void)(0)
-
-#define GET_FINFO_S(N) \
- _fid##N = (*e)->GetFieldID(e, finfo, #N, \
- "Ljava/lang/String;"); \
- if (_fid##N == NULL) { \
- (*e)->ExceptionClear(e); \
- goto cleanup; \
- } else (void)(0)
-
-#define SET_FINFO_I(N, V) \
- (*e)->SetIntField(e, obj, _fid##N, (jint)(V))
-
-#define SET_FINFO_J(N, V) \
- (*e)->SetLongField(e, obj, _fid##N, (jlong)(V))
-
-#define SET_FINFO_S(N, V) \
- (*e)->SetObjectField(e, obj, _fid##N, \
- (V) ? AJP_TO_JSTRING((V)) : NULL)
-
-
-#define DECLARE_AINFO_FIELD(name) static jfieldID _aid##name = NULL
-#define AINFO_FIELD(name) _aid##name
-
-#define GET_AINFO_I(N) \
- _aid##N = (*e)->GetFieldID(e, ainfo, #N, "I"); \
- if (_aid##N == NULL) { \
- (*e)->ExceptionClear(e); \
- goto cleanup; \
- } else (void)(0)
-
-#define GET_AINFO_J(N) \
- _aid##N = (*e)->GetFieldID(e, ainfo, #N, "J"); \
- if (_aid##N == NULL) { \
- (*e)->ExceptionClear(e); \
- goto cleanup; \
- } else (void)(0)
-
-#define GET_AINFO_S(N) \
- _aid##N = (*e)->GetFieldID(e, ainfo, #N, \
- "Ljava/lang/String;"); \
- if (_aid##N == NULL) { \
- (*e)->ExceptionClear(e); \
- goto cleanup; \
- } else (void)(0)
-
-#define SET_AINFO_I(N, V) \
- (*e)->SetIntField(e, obj, _aid##N, (jint)(V))
-
-#define SET_AINFO_J(N, V) \
- (*e)->SetLongField(e, obj, _aid##N, (jlong)(V))
-
-#define SET_AINFO_S(N, V) \
- (*e)->SetObjectField(e, obj, _aid##N, \
- (V) ? AJP_TO_JSTRING((V)) : NULL)
-
-
-DECLARE_FINFO_FIELD(pool);
-DECLARE_FINFO_FIELD(valid);
-DECLARE_FINFO_FIELD(protection);
-DECLARE_FINFO_FIELD(filetype);
-DECLARE_FINFO_FIELD(user);
-DECLARE_FINFO_FIELD(group);
-DECLARE_FINFO_FIELD(inode);
-DECLARE_FINFO_FIELD(device);
-DECLARE_FINFO_FIELD(nlink);
-DECLARE_FINFO_FIELD(size);
-DECLARE_FINFO_FIELD(csize);
-DECLARE_FINFO_FIELD(atime);
-DECLARE_FINFO_FIELD(mtime);
-DECLARE_FINFO_FIELD(ctime);
-DECLARE_FINFO_FIELD(fname);
-DECLARE_FINFO_FIELD(name);
-DECLARE_FINFO_FIELD(filehand);
-
-DECLARE_AINFO_FIELD(pool);
-DECLARE_AINFO_FIELD(hostname);
-DECLARE_AINFO_FIELD(servname);
-DECLARE_AINFO_FIELD(port);
-DECLARE_AINFO_FIELD(family);
-DECLARE_AINFO_FIELD(next);
-
-static int finfo_class_initialized = 0;
-static int ainfo_class_initialized = 0;
-static jmethodID finfo_class_init = NULL;
-static jmethodID ainfo_class_init = NULL;
-static jclass finfo_class = NULL;
-static jclass ainfo_class = NULL;
-
-apr_status_t tcn_load_finfo_class(JNIEnv *e, jclass finfo)
-{
- GET_FINFO_J(pool);
- GET_FINFO_I(valid);
- GET_FINFO_I(protection);
- GET_FINFO_I(filetype);
- GET_FINFO_I(user);
- GET_FINFO_I(group);
- GET_FINFO_I(inode);
- GET_FINFO_I(device);
- GET_FINFO_I(nlink);
- GET_FINFO_J(size);
- GET_FINFO_J(csize);
- GET_FINFO_J(atime);
- GET_FINFO_J(mtime);
- GET_FINFO_J(ctime);
- GET_FINFO_S(fname);
- GET_FINFO_S(name);
- GET_FINFO_J(filehand);
-
- finfo_class_init = (*e)->GetMethodID(e, finfo,
- "<init>", "()V");
- if (finfo_class_init == NULL)
- goto cleanup;
- finfo_class_initialized = 1;
- finfo_class = finfo;
-cleanup:
- return APR_SUCCESS;
-}
-
-apr_status_t tcn_load_ainfo_class(JNIEnv *e, jclass ainfo)
-{
- GET_AINFO_J(pool);
- GET_AINFO_S(hostname);
- GET_AINFO_S(servname);
- GET_AINFO_I(port);
- GET_AINFO_I(family);
- GET_AINFO_J(next);
- ainfo_class_init = (*e)->GetMethodID(e, ainfo,
- "<init>", "()V");
-
- if (ainfo_class_init == NULL)
- goto cleanup;
- ainfo_class_initialized = 1;
- ainfo_class = ainfo;
-cleanup:
- return APR_SUCCESS;
-}
-
-static void fill_finfo(JNIEnv *e, jobject obj, apr_finfo_t *info)
-{
-
- SET_FINFO_J(pool, P2J(info->pool));
- SET_FINFO_I(valid, info->valid);
- SET_FINFO_I(protection, info->protection);
- SET_FINFO_I(filetype, info->filetype);
- SET_FINFO_I(user, ((jlong)info->user));
- SET_FINFO_I(group, ((jlong)info->group));
- SET_FINFO_I(inode, info->inode);
- SET_FINFO_I(device, info->device);
- SET_FINFO_I(nlink, info->nlink);
- SET_FINFO_J(size, info->size);
- SET_FINFO_J(csize, info->csize);
- SET_FINFO_J(atime, info->atime);
- SET_FINFO_J(mtime, info->mtime);
- SET_FINFO_J(ctime, info->ctime);
- SET_FINFO_S(fname, info->fname);
- SET_FINFO_S(name, info->name);
- SET_FINFO_J(filehand, P2J(info->filehand));
-}
-
-static void fill_ainfo(JNIEnv *e, jobject obj, apr_sockaddr_t *info)
-{
- apr_int32_t f;
- if (info->family == APR_UNSPEC) f = 0;
- else if (info->family == APR_INET) f = 1;
- else if (info->family == APR_INET6) f = 2;
- else f = info->family;
-
- SET_AINFO_J(pool, P2J(info->pool));
- SET_AINFO_S(hostname, info->hostname);
- SET_AINFO_S(servname, info->servname);
- SET_AINFO_I(port, info->port);
- SET_AINFO_I(family, f);
- SET_AINFO_J(next, P2J(info->next));
-
-}
-
-TCN_IMPLEMENT_CALL(jint, File, stat)(TCN_STDARGS, jobject finfo,
- jstring fname, jint wanted,
- jlong pool)
-{
- apr_pool_t *p = J2P(pool, apr_pool_t *);
- TCN_ALLOC_CSTRING(fname);
- apr_status_t rv;
- apr_finfo_t info;
-
- UNREFERENCED(o);
-
- if ((rv = apr_stat(&info, J2S(fname), wanted, p)) == APR_SUCCESS) {
- jobject io = (*e)->NewLocalRef(e, finfo);
- fill_finfo(e, io, &info);
- (*e)->DeleteLocalRef(e, io);
- }
- TCN_FREE_CSTRING(fname);
- return (jint)rv;
-}
-
-TCN_IMPLEMENT_CALL(jobject, File, getStat)(TCN_STDARGS, jstring fname,
- jint wanted, jlong pool)
-{
- apr_pool_t *p = J2P(pool, apr_pool_t *);
- TCN_ALLOC_CSTRING(fname);
- apr_status_t rv;
- apr_finfo_t info;
- jobject finfo = NULL;
-
- UNREFERENCED(o);
-
- if ((rv = apr_stat(&info, J2S(fname), wanted, p)) == APR_SUCCESS) {
- finfo = (*e)->NewObject(e, finfo_class, finfo_class_init);
- if (finfo == NULL)
- goto cleanup;
- fill_finfo(e, finfo, &info);
- }
- else
- tcn_ThrowAPRException(e, rv);
-cleanup:
- TCN_FREE_CSTRING(fname);
- return finfo;
-}
-
-TCN_IMPLEMENT_CALL(jint, File, infoGet)(TCN_STDARGS, jobject finfo,
- jint wanted, jlong file)
-{
- apr_file_t *f = J2P(file, apr_file_t *);
- apr_status_t rv;
- apr_finfo_t info;
-
- UNREFERENCED(o);
-
- if ((rv = apr_file_info_get(&info, wanted, f)) == APR_SUCCESS) {
- jobject io = (*e)->NewLocalRef(e, finfo);
- fill_finfo(e, io, &info);
- (*e)->DeleteLocalRef(e, io);
- }
- return (jint)rv;
-}
-
-TCN_IMPLEMENT_CALL(jobject, File, getInfo)(TCN_STDARGS, jint wanted, jlong file)
-{
- apr_file_t *f = J2P(file, apr_file_t *);
- apr_status_t rv;
- apr_finfo_t info;
-
- UNREFERENCED(o);
-
- if ((rv = apr_file_info_get(&info, wanted, f)) == APR_SUCCESS) {
- jobject finfo;
- finfo = (*e)->NewObject(e, finfo_class, finfo_class_init);
- if (finfo == NULL)
- return NULL;
- fill_finfo(e, finfo, &info);
- return finfo;
- }
- else
- tcn_ThrowAPRException(e, rv);
- return NULL;
-}
-
-TCN_IMPLEMENT_CALL(jint, Directory, read)(TCN_STDARGS, jobject finfo,
- jint wanted, jlong dir)
-{
- apr_dir_t *d = J2P(dir, apr_dir_t *);
- apr_status_t rv;
- apr_finfo_t info;
-
- UNREFERENCED(o);
-
- if ((rv = apr_dir_read(&info, wanted, d)) == APR_SUCCESS) {
- jobject io = (*e)->NewLocalRef(e, finfo);
- fill_finfo(e, io, &info);
- if ((*e)->ExceptionCheck(e)) {
- (*e)->ExceptionClear(e);
- }
- else
- rv = APR_EGENERAL;
- (*e)->DeleteLocalRef(e, io);
- }
- return (jint)rv;
-}
-
-TCN_IMPLEMENT_CALL(jboolean, Address, fill)(TCN_STDARGS,
- jobject addr, jlong info)
-{
- apr_sockaddr_t *i = J2P(info, apr_sockaddr_t *);
- jobject ao;
- jboolean rv = JNI_FALSE;
-
- UNREFERENCED(o);
-
- if (i) {
- ao = (*e)->NewLocalRef(e, addr);
- fill_ainfo(e, ao, i);
- if ((*e)->ExceptionCheck(e)) {
- (*e)->ExceptionClear(e);
- }
- else
- rv = JNI_TRUE;
- (*e)->DeleteLocalRef(e, ao);
- }
- return rv;
-}
-
-TCN_IMPLEMENT_CALL(jobject, Address, getInfo)(TCN_STDARGS, jlong info)
-{
- apr_sockaddr_t *i = J2P(info, apr_sockaddr_t *);
- jobject sockaddrObj = NULL;
-
- UNREFERENCED(o);
-
- /* Create the APR Error object */
- sockaddrObj = (*e)->NewObject(e, ainfo_class, ainfo_class_init);
- if (sockaddrObj == NULL)
- return NULL;
- fill_ainfo(e, sockaddrObj, i);
- return sockaddrObj;
-}
« no previous file with comments | « c/file.c ('k') | c/jnilib.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698