Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/bindings/javahl/native/JNIUtil.h view on Meta::CPAN
* 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.
* ====================================================================
* @endcopyright
*
* @file JNIUtil.h
* @brief Interface of the class JNIUtil
*/
#ifndef JNIUTIL_H
#define JNIUTIL_H
#include <list>
#include <vector>
#include "Pool.h"
struct apr_pool_t;
class JNIMutex;
class SVNBase;
#include <jni.h>
#include <fstream>
#include <apr_time.h>
#include <string>
struct svn_error_t;
#define JAVA_PACKAGE "org/apache/subversion/javahl"
struct svn_string_t;
/**
* Class to hold a number of JNI related utility methods. No Objects
* of this class are ever created.
*/
class JNIUtil
{
public:
static svn_error_t *preprocessPath(const char *&path, apr_pool_t *pool);
/**
* Throw the Java NativeException instance named by
* exceptionClassName. A NativeException sub-class must supply a
* 3-arg constructor identical to that of NativeException. @a
* source is any file name and line number information.
*/
static void throwNativeException(const char *exceptionClassName,
const char *msg,
const char *source = NULL,
int aprErr = -1);
static void throwNullPointerException(const char *message);
static jbyteArray makeJByteArray(const void *data, int length);
static jbyteArray makeJByteArray(const svn_string_t *str);
static jobject createDate(apr_time_t time);
static void logMessage(const char *message);
static int getLogLevel();
static char *getFormatBuffer();
static void initLogFile(int level, jstring path);
static jstring makeJString(const char *txt);
static bool isJavaExceptionThrown();
static JNIEnv *getEnv();
static void setEnv(JNIEnv *);
/**
* @return Whether any Throwable has been raised.
*/
static bool isExceptionThrown();
static void handleAPRError(int error, const char *op);
/**
* Put @a object in the list of finalized objects queued up to be
* deleted (by another thread) during the next operation.
*
* @param object The C++ peer of the finalized (Java) object.
* @since 1.4.0
*/
static void enqueueForDeletion(SVNBase *object);
/**
* @deprecated Use the more appropriately named
* enqueueForDeletion() instead.
*/
static void putFinalizedClient(SVNBase *cl);
/**
* Convert any exception that may have been thrown into a textual
* representation. Return @c NULL if no exception has
* occurred. Useful for converting Java @c Exceptions into @c
* svn_error_t's.
*/
static const char *thrownExceptionToCString(SVN::Pool &in_pool);
/**
* Throw a Java exception corresponding to err, and run
* svn_error_clear() on err.
*/
static void handleSVNError(svn_error_t *err);
static jstring makeSVNErrorMessage(svn_error_t *err);
/**
* Create and throw a java.lang.Throwable instance.
*
* @param name The class name (in path form, with slashes in lieu
* of dots) of the Throwable to create and raise.
* @param message The message text of the Throwable.
*/
static void raiseThrowable(const char *name, const char *message);
/**
* Creates and throws a JNIError.
( run in 0.470 second using v1.01-cache-2.11-cpan-ceb78f64989 )