add gcj and java->python initial support
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@8134 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
e7e61fa999
commit
dbc55f256c
13 changed files with 659 additions and 2 deletions
|
|
@ -1,6 +1,26 @@
|
||||||
Version 1.3.28 (unreleased).
|
Version 1.3.28 (unreleased).
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
12/30/2005: mmatus
|
||||||
|
|
||||||
|
- Add initial support for gcj and Java -> Python. See
|
||||||
|
|
||||||
|
Examples/python/java
|
||||||
|
|
||||||
|
to see how to use gcj and how to export java classes into
|
||||||
|
python.
|
||||||
|
|
||||||
|
The idea is to put all the common code for gcj inside
|
||||||
|
|
||||||
|
Lib/gcj
|
||||||
|
|
||||||
|
such that it can be used from other languages.
|
||||||
|
|
||||||
|
Python provide a simple jstring.i interface, which can be
|
||||||
|
used as a modelo to ruby,tcl and perl, ie, the languages
|
||||||
|
that use the UTL.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
12/29/2005: mmatus
|
12/29/2005: mmatus
|
||||||
- Add the copyctor feature/directive to enable the automatic
|
- Add the copyctor feature/directive to enable the automatic
|
||||||
|
|
@ -80,7 +100,7 @@ Version 1.3.28 (unreleased).
|
||||||
which always confuses people, since the first thing you do
|
which always confuses people, since the first thing you do
|
||||||
is just to write the 'in' typemap.
|
is just to write the 'in' typemap.
|
||||||
|
|
||||||
Well, the 'match' option solve the problem, and if you
|
Well, the 'match' option solves the problem, and if you
|
||||||
write instead
|
write instead
|
||||||
|
|
||||||
%typemap(in) SWIGTYPE * (int res) {..}
|
%typemap(in) SWIGTYPE * (int res) {..}
|
||||||
|
|
|
||||||
|
|
@ -26,3 +26,5 @@ swigrun
|
||||||
template
|
template
|
||||||
varargs
|
varargs
|
||||||
variables
|
variables
|
||||||
|
java
|
||||||
|
|
||||||
|
|
|
||||||
29
SWIG/Examples/python/java/Example.java
Normal file
29
SWIG/Examples/python/java/Example.java
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
public class Example {
|
||||||
|
public int mPublicInt;
|
||||||
|
|
||||||
|
public Example() {
|
||||||
|
mPublicInt = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Example(int IntVal) {
|
||||||
|
mPublicInt = IntVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int Add(int a, int b) {
|
||||||
|
return (a+b);
|
||||||
|
}
|
||||||
|
|
||||||
|
public float Add(float a, float b) {
|
||||||
|
return (a+b);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String Add(String a, String b) {
|
||||||
|
return (a+b);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Example Add(Example a, Example b) {
|
||||||
|
return new Example(a.mPublicInt + b.mPublicInt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
27
SWIG/Examples/python/java/Makefile
Normal file
27
SWIG/Examples/python/java/Makefile
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
CXX = gcj
|
||||||
|
TOP = ../..
|
||||||
|
SWIG = $(TOP)/../preinst-swig
|
||||||
|
CXXSRCS =
|
||||||
|
TARGET = example
|
||||||
|
INTERFACE = example.i
|
||||||
|
LIBS = -lm
|
||||||
|
|
||||||
|
all:: Example.class
|
||||||
|
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
|
||||||
|
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' CXX="gcj" CFLAGS="-fPIC" \
|
||||||
|
CXXSHARED="gcj -fPIC -shared Example.class" DEFS='' python_cpp
|
||||||
|
|
||||||
|
|
||||||
|
clean::
|
||||||
|
$(MAKE) -f $(TOP)/Makefile python_clean
|
||||||
|
rm -f $(TARGET).py
|
||||||
|
rm -f *.class Example.h
|
||||||
|
|
||||||
|
check: all
|
||||||
|
|
||||||
|
|
||||||
|
Example.class: Example.java
|
||||||
|
gcj -v || exit 0
|
||||||
|
gcj -fPIC -C -c -g Example.java
|
||||||
|
gcjh Example
|
||||||
|
|
||||||
0
SWIG/Examples/python/java/example.cxx
Normal file
0
SWIG/Examples/python/java/example.cxx
Normal file
11
SWIG/Examples/python/java/example.i
Normal file
11
SWIG/Examples/python/java/example.i
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
%module example
|
||||||
|
%include <gcj/cni.i>
|
||||||
|
|
||||||
|
%include <jstring.i>
|
||||||
|
|
||||||
|
%{
|
||||||
|
#include "Example.h"
|
||||||
|
%}
|
||||||
|
|
||||||
|
|
||||||
|
%include Example.h
|
||||||
16
SWIG/Examples/python/java/runme.py
Normal file
16
SWIG/Examples/python/java/runme.py
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
from example import *
|
||||||
|
|
||||||
|
JvCreateJavaVM(None)
|
||||||
|
JvAttachCurrentThread(None, None)
|
||||||
|
|
||||||
|
e1 = Example(1)
|
||||||
|
e2 = Example(2)
|
||||||
|
|
||||||
|
print e1.Add(1,2)
|
||||||
|
print e1.Add(1.0,2.0)
|
||||||
|
e3 = e1.Add(e1,e2)
|
||||||
|
print e3.mPublicInt
|
||||||
|
|
||||||
|
print e1.Add("1","2")
|
||||||
|
|
||||||
|
JvDetachCurrentThread()
|
||||||
43
SWIG/Lib/gcj/cni.i
Normal file
43
SWIG/Lib/gcj/cni.i
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
%{
|
||||||
|
#include <gcj/cni.h>
|
||||||
|
%}
|
||||||
|
|
||||||
|
%include <gcj/javaprims.i>
|
||||||
|
|
||||||
|
extern jobject JvAllocObject (jclass cls);
|
||||||
|
|
||||||
|
extern jobject JvAllocObject (jclass cls, jsize sz);
|
||||||
|
|
||||||
|
extern void JvInitClass (jclass cls);
|
||||||
|
|
||||||
|
extern jstring JvAllocString (jsize sz);
|
||||||
|
|
||||||
|
extern jstring JvNewString (const jchar *chars, jsize len);
|
||||||
|
|
||||||
|
extern jstring JvNewStringLatin1 (const char *bytes, jsize len);
|
||||||
|
|
||||||
|
extern jstring JvNewStringLatin1 (const char *bytes);
|
||||||
|
|
||||||
|
extern jchar* JvGetStringChars (jstring str);
|
||||||
|
|
||||||
|
extern jsize JvGetStringUTFLength (jstring string);
|
||||||
|
|
||||||
|
extern jsize JvGetStringUTFRegion (jstring str, jsize start, jsize len, char *buf);
|
||||||
|
|
||||||
|
extern jstring JvNewStringUTF (const char *bytes);
|
||||||
|
|
||||||
|
extern void *JvMalloc (jsize size);
|
||||||
|
|
||||||
|
extern void JvFree (void *ptr);
|
||||||
|
|
||||||
|
extern jint JvCreateJavaVM (void* vm_args);
|
||||||
|
|
||||||
|
extern java::lang::Thread* JvAttachCurrentThread (jstring name, java::lang::ThreadGroup* group);
|
||||||
|
|
||||||
|
extern java::lang::Thread* JvAttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group);
|
||||||
|
|
||||||
|
extern jint JvDetachCurrentThread (void);
|
||||||
|
|
||||||
|
|
||||||
|
%include <gcj/cni.swg>
|
||||||
|
|
||||||
14
SWIG/Lib/gcj/cni.swg
Normal file
14
SWIG/Lib/gcj/cni.swg
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
/*
|
||||||
|
Swig especial
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef SWIG
|
||||||
|
|
||||||
|
#define __attribute__(...)
|
||||||
|
%ignore class$;
|
||||||
|
#pragma SWIG nowarn=313,402
|
||||||
|
|
||||||
|
%nodefaultdtor;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
422
SWIG/Lib/gcj/javaprims.i
Normal file
422
SWIG/Lib/gcj/javaprims.i
Normal file
|
|
@ -0,0 +1,422 @@
|
||||||
|
%include <stdint.i>
|
||||||
|
|
||||||
|
typedef int8_t jbyte;
|
||||||
|
typedef int16_t jshort;
|
||||||
|
typedef int32_t jint;
|
||||||
|
typedef int64_t jlong;
|
||||||
|
typedef float jfloat;
|
||||||
|
typedef double jdouble;
|
||||||
|
typedef jint jsize;
|
||||||
|
typedef int8_t jboolean;
|
||||||
|
|
||||||
|
extern "Java"
|
||||||
|
{
|
||||||
|
namespace java
|
||||||
|
{
|
||||||
|
namespace io
|
||||||
|
{
|
||||||
|
class BufferedInputStream;
|
||||||
|
class BufferedOutputStream;
|
||||||
|
class BufferedReader;
|
||||||
|
class BufferedWriter;
|
||||||
|
class ByteArrayInputStream;
|
||||||
|
class ByteArrayOutputStream;
|
||||||
|
class CharArrayReader;
|
||||||
|
class CharArrayWriter;
|
||||||
|
class CharConversionException;
|
||||||
|
class DataInput;
|
||||||
|
class DataInputStream;
|
||||||
|
class DataOutput;
|
||||||
|
class DataOutputStream;
|
||||||
|
class EOFException;
|
||||||
|
class Externalizable;
|
||||||
|
class File;
|
||||||
|
class FileDescriptor;
|
||||||
|
class FileFilter;
|
||||||
|
class FileInputStream;
|
||||||
|
class FileNotFoundException;
|
||||||
|
class FileOutputStream;
|
||||||
|
class FilePermission;
|
||||||
|
class FileReader;
|
||||||
|
class FileWriter;
|
||||||
|
class FilenameFilter;
|
||||||
|
class FilterInputStream;
|
||||||
|
class FilterOutputStream;
|
||||||
|
class FilterReader;
|
||||||
|
class FilterWriter;
|
||||||
|
class IOException;
|
||||||
|
class InputStream;
|
||||||
|
class InputStreamReader;
|
||||||
|
class InterfaceComparator;
|
||||||
|
class InterruptedIOException;
|
||||||
|
class InvalidClassException;
|
||||||
|
class InvalidObjectException;
|
||||||
|
class LineNumberInputStream;
|
||||||
|
class LineNumberReader;
|
||||||
|
class MemberComparator;
|
||||||
|
class NotActiveException;
|
||||||
|
class NotSerializableException;
|
||||||
|
class ObjectInput;
|
||||||
|
class ObjectInputStream;
|
||||||
|
class ObjectInputStream$GetField;
|
||||||
|
class ObjectInputValidation;
|
||||||
|
class ObjectOutput;
|
||||||
|
class ObjectOutputStream;
|
||||||
|
class ObjectOutputStream$PutField;
|
||||||
|
class ObjectStreamClass;
|
||||||
|
class ObjectStreamConstants;
|
||||||
|
class ObjectStreamException;
|
||||||
|
class ObjectStreamField;
|
||||||
|
class OptionalDataException;
|
||||||
|
class OutputStream;
|
||||||
|
class OutputStreamWriter;
|
||||||
|
class PipedInputStream;
|
||||||
|
class PipedOutputStream;
|
||||||
|
class PipedReader;
|
||||||
|
class PipedWriter;
|
||||||
|
class PrintStream;
|
||||||
|
class PrintWriter;
|
||||||
|
class PushbackInputStream;
|
||||||
|
class PushbackReader;
|
||||||
|
class RandomAccessFile;
|
||||||
|
class Reader;
|
||||||
|
class SequenceInputStream;
|
||||||
|
class Serializable;
|
||||||
|
class SerializablePermission;
|
||||||
|
class StreamCorruptedException;
|
||||||
|
class StreamTokenizer;
|
||||||
|
class StringBufferInputStream;
|
||||||
|
class StringReader;
|
||||||
|
class StringWriter;
|
||||||
|
class SyncFailedException;
|
||||||
|
class UTFDataFormatException;
|
||||||
|
class UnsupportedEncodingException;
|
||||||
|
class VMObjectStreamClass;
|
||||||
|
class ValidatorAndPriority;
|
||||||
|
class WriteAbortedException;
|
||||||
|
class Writer;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace lang
|
||||||
|
{
|
||||||
|
class AbstractMethodError;
|
||||||
|
class ArithmeticException;
|
||||||
|
class ArrayIndexOutOfBoundsException;
|
||||||
|
class ArrayStoreException;
|
||||||
|
class AssertionError;
|
||||||
|
class Boolean;
|
||||||
|
class Byte;
|
||||||
|
class CharSequence;
|
||||||
|
class Character;
|
||||||
|
class Character$Subset;
|
||||||
|
class Character$UnicodeBlock;
|
||||||
|
class Class;
|
||||||
|
class ClassCastException;
|
||||||
|
class ClassCircularityError;
|
||||||
|
class ClassFormatError;
|
||||||
|
class ClassLoader;
|
||||||
|
class ClassNotFoundException;
|
||||||
|
class CloneNotSupportedException;
|
||||||
|
class Cloneable;
|
||||||
|
class Comparable;
|
||||||
|
class Compiler;
|
||||||
|
class ConcreteProcess;
|
||||||
|
class Double;
|
||||||
|
class Error;
|
||||||
|
class Exception;
|
||||||
|
class ExceptionInInitializerError;
|
||||||
|
class Float;
|
||||||
|
class IllegalAccessError;
|
||||||
|
class IllegalAccessException;
|
||||||
|
class IllegalArgumentException;
|
||||||
|
class IllegalMonitorStateException;
|
||||||
|
class IllegalStateException;
|
||||||
|
class IllegalThreadStateException;
|
||||||
|
class IncompatibleClassChangeError;
|
||||||
|
class IndexOutOfBoundsException;
|
||||||
|
class InheritableThreadLocal;
|
||||||
|
class InstantiationError;
|
||||||
|
class InstantiationException;
|
||||||
|
class Integer;
|
||||||
|
class InternalError;
|
||||||
|
class InterruptedException;
|
||||||
|
class LinkageError;
|
||||||
|
class Long;
|
||||||
|
class Math;
|
||||||
|
class NegativeArraySizeException;
|
||||||
|
class NoClassDefFoundError;
|
||||||
|
class NoSuchFieldError;
|
||||||
|
class NoSuchFieldException;
|
||||||
|
class NoSuchMethodError;
|
||||||
|
class NoSuchMethodException;
|
||||||
|
class NullPointerException;
|
||||||
|
class Number;
|
||||||
|
class NumberFormatException;
|
||||||
|
class Object;
|
||||||
|
class OutOfMemoryError;
|
||||||
|
class Package;
|
||||||
|
class Process;
|
||||||
|
class Runnable;
|
||||||
|
class Runtime;
|
||||||
|
class RuntimeException;
|
||||||
|
class RuntimePermission;
|
||||||
|
class SecurityContext;
|
||||||
|
class SecurityException;
|
||||||
|
class SecurityManager;
|
||||||
|
class Short;
|
||||||
|
class StackOverflowError;
|
||||||
|
class StackTraceElement;
|
||||||
|
class StrictMath;
|
||||||
|
class String;
|
||||||
|
class String$CaseInsensitiveComparator;
|
||||||
|
class StringBuffer;
|
||||||
|
class StringIndexOutOfBoundsException;
|
||||||
|
class System;
|
||||||
|
class Thread;
|
||||||
|
class ThreadDeath;
|
||||||
|
class ThreadGroup;
|
||||||
|
class ThreadLocal;
|
||||||
|
class Throwable;
|
||||||
|
class UnknownError;
|
||||||
|
class UnsatisfiedLinkError;
|
||||||
|
class UnsupportedClassVersionError;
|
||||||
|
class UnsupportedOperationException;
|
||||||
|
class VMClassLoader;
|
||||||
|
class VMSecurityManager;
|
||||||
|
class VMThrowable;
|
||||||
|
class VerifyError;
|
||||||
|
class VirtualMachineError;
|
||||||
|
class Void;
|
||||||
|
namespace ref
|
||||||
|
{
|
||||||
|
class PhantomReference;
|
||||||
|
class Reference;
|
||||||
|
class ReferenceQueue;
|
||||||
|
class SoftReference;
|
||||||
|
class WeakReference;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace reflect
|
||||||
|
{
|
||||||
|
class AccessibleObject;
|
||||||
|
class Array;
|
||||||
|
class Constructor;
|
||||||
|
class Field;
|
||||||
|
class InvocationHandler;
|
||||||
|
class InvocationTargetException;
|
||||||
|
class Member;
|
||||||
|
class Method;
|
||||||
|
class Modifier;
|
||||||
|
class Proxy;
|
||||||
|
class Proxy$ClassFactory;
|
||||||
|
class Proxy$ProxyData;
|
||||||
|
class Proxy$ProxySignature;
|
||||||
|
class Proxy$ProxyType;
|
||||||
|
class ReflectPermission;
|
||||||
|
class UndeclaredThrowableException;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace util
|
||||||
|
{
|
||||||
|
class AbstractCollection;
|
||||||
|
class AbstractList;
|
||||||
|
class AbstractMap;
|
||||||
|
class AbstractMap$BasicMapEntry;
|
||||||
|
class AbstractSequentialList;
|
||||||
|
class AbstractSet;
|
||||||
|
class ArrayList;
|
||||||
|
class Arrays;
|
||||||
|
class Arrays$ArrayList;
|
||||||
|
class BitSet;
|
||||||
|
class Calendar;
|
||||||
|
class Collection;
|
||||||
|
class Collections;
|
||||||
|
class Collections$CopiesList;
|
||||||
|
class Collections$EmptyList;
|
||||||
|
class Collections$EmptyMap;
|
||||||
|
class Collections$EmptySet;
|
||||||
|
class Collections$ReverseComparator;
|
||||||
|
class Collections$SingletonList;
|
||||||
|
class Collections$SingletonMap;
|
||||||
|
class Collections$SingletonSet;
|
||||||
|
class Collections$SynchronizedCollection;
|
||||||
|
class Collections$SynchronizedIterator;
|
||||||
|
class Collections$SynchronizedList;
|
||||||
|
class Collections$SynchronizedListIterator;
|
||||||
|
class Collections$SynchronizedMap;
|
||||||
|
class Collections$SynchronizedMapEntry;
|
||||||
|
class Collections$SynchronizedRandomAccessList;
|
||||||
|
class Collections$SynchronizedSet;
|
||||||
|
class Collections$SynchronizedSortedMap;
|
||||||
|
class Collections$SynchronizedSortedSet;
|
||||||
|
class Collections$UnmodifiableCollection;
|
||||||
|
class Collections$UnmodifiableEntrySet;
|
||||||
|
class Collections$UnmodifiableIterator;
|
||||||
|
class Collections$UnmodifiableList;
|
||||||
|
class Collections$UnmodifiableListIterator;
|
||||||
|
class Collections$UnmodifiableMap;
|
||||||
|
class Collections$UnmodifiableRandomAccessList;
|
||||||
|
class Collections$UnmodifiableSet;
|
||||||
|
class Collections$UnmodifiableSortedMap;
|
||||||
|
class Collections$UnmodifiableSortedSet;
|
||||||
|
class Comparator;
|
||||||
|
class ConcurrentModificationException;
|
||||||
|
class Currency;
|
||||||
|
class Date;
|
||||||
|
class Dictionary;
|
||||||
|
class EmptyStackException;
|
||||||
|
class Enumeration;
|
||||||
|
class EventListener;
|
||||||
|
class EventListenerProxy;
|
||||||
|
class EventObject;
|
||||||
|
class GregorianCalendar;
|
||||||
|
class HashMap;
|
||||||
|
class HashMap$HashEntry;
|
||||||
|
class HashMap$HashIterator;
|
||||||
|
class HashSet;
|
||||||
|
class Hashtable;
|
||||||
|
class Hashtable$Enumerator;
|
||||||
|
class Hashtable$HashEntry;
|
||||||
|
class Hashtable$HashIterator;
|
||||||
|
class IdentityHashMap;
|
||||||
|
class IdentityHashMap$IdentityEntry;
|
||||||
|
class IdentityHashMap$IdentityIterator;
|
||||||
|
class Iterator;
|
||||||
|
class LinkedHashMap;
|
||||||
|
class LinkedHashMap$LinkedHashEntry;
|
||||||
|
class LinkedHashSet;
|
||||||
|
class LinkedList;
|
||||||
|
class LinkedList$Entry;
|
||||||
|
class LinkedList$LinkedListItr;
|
||||||
|
class List;
|
||||||
|
class ListIterator;
|
||||||
|
class ListResourceBundle;
|
||||||
|
class Locale;
|
||||||
|
class Map;
|
||||||
|
class Map$Entry;
|
||||||
|
class Map$Map;
|
||||||
|
class MissingResourceException;
|
||||||
|
class MyResources;
|
||||||
|
class NoSuchElementException;
|
||||||
|
class Observable;
|
||||||
|
class Observer;
|
||||||
|
class Properties;
|
||||||
|
class PropertyPermission;
|
||||||
|
class PropertyPermissionCollection;
|
||||||
|
class PropertyResourceBundle;
|
||||||
|
class Random;
|
||||||
|
class RandomAccess;
|
||||||
|
class RandomAccessSubList;
|
||||||
|
class ResourceBundle;
|
||||||
|
class Set;
|
||||||
|
class SimpleTimeZone;
|
||||||
|
class SortedMap;
|
||||||
|
class SortedSet;
|
||||||
|
class Stack;
|
||||||
|
class StringTokenizer;
|
||||||
|
class SubList;
|
||||||
|
class TimeZone;
|
||||||
|
class Timer;
|
||||||
|
class Timer$Scheduler;
|
||||||
|
class Timer$TaskQueue;
|
||||||
|
class TimerTask;
|
||||||
|
class TooManyListenersException;
|
||||||
|
class TreeMap;
|
||||||
|
class TreeMap$Node;
|
||||||
|
class TreeMap$SubMap;
|
||||||
|
class TreeMap$TreeIterator;
|
||||||
|
class TreeSet;
|
||||||
|
class Vector;
|
||||||
|
class WeakHashMap;
|
||||||
|
class WeakHashMap$WeakBucket;
|
||||||
|
class WeakHashMap$WeakEntry;
|
||||||
|
class WeakHashMap$WeakEntrySet;
|
||||||
|
namespace jar
|
||||||
|
{
|
||||||
|
class Attributes;
|
||||||
|
class Attributes$Name;
|
||||||
|
class JarEntry;
|
||||||
|
class JarException;
|
||||||
|
class JarFile;
|
||||||
|
class JarFile$JarEnumeration;
|
||||||
|
class JarInputStream;
|
||||||
|
class JarOutputStream;
|
||||||
|
class Manifest;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace logging
|
||||||
|
{
|
||||||
|
class ConsoleHandler;
|
||||||
|
class ErrorManager;
|
||||||
|
class FileHandler;
|
||||||
|
class Filter;
|
||||||
|
class Formatter;
|
||||||
|
class Handler;
|
||||||
|
class Level;
|
||||||
|
class LogManager;
|
||||||
|
class LogRecord;
|
||||||
|
class Logger;
|
||||||
|
class LoggingPermission;
|
||||||
|
class MemoryHandler;
|
||||||
|
class SimpleFormatter;
|
||||||
|
class SocketHandler;
|
||||||
|
class StreamHandler;
|
||||||
|
class XMLFormatter;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace prefs
|
||||||
|
{
|
||||||
|
class AbstractPreferences;
|
||||||
|
class BackingStoreException;
|
||||||
|
class InvalidPreferencesFormatException;
|
||||||
|
class NodeChangeEvent;
|
||||||
|
class NodeChangeListener;
|
||||||
|
class PreferenceChangeEvent;
|
||||||
|
class PreferenceChangeListener;
|
||||||
|
class Preferences;
|
||||||
|
class PreferencesFactory;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace regex
|
||||||
|
{
|
||||||
|
class Matcher;
|
||||||
|
class Pattern;
|
||||||
|
class PatternSyntaxException;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace zip
|
||||||
|
{
|
||||||
|
class Adler32;
|
||||||
|
class CRC32;
|
||||||
|
class CheckedInputStream;
|
||||||
|
class CheckedOutputStream;
|
||||||
|
class Checksum;
|
||||||
|
class DataFormatException;
|
||||||
|
class Deflater;
|
||||||
|
class DeflaterOutputStream;
|
||||||
|
class GZIPInputStream;
|
||||||
|
class GZIPOutputStream;
|
||||||
|
class Inflater;
|
||||||
|
class InflaterInputStream;
|
||||||
|
class ZipConstants;
|
||||||
|
class ZipEntry;
|
||||||
|
class ZipException;
|
||||||
|
class ZipFile;
|
||||||
|
class ZipFile$PartialInputStream;
|
||||||
|
class ZipFile$ZipEntryEnumeration;
|
||||||
|
class ZipInputStream;
|
||||||
|
class ZipOutputStream;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef class java::lang::Object* jobject;
|
||||||
|
typedef class java::lang::Class* jclass;
|
||||||
|
typedef class java::lang::Throwable* jthrowable;
|
||||||
|
typedef class java::lang::String* jstring;
|
||||||
|
|
||||||
|
|
||||||
|
%include <gcj/cni.swg>
|
||||||
|
|
||||||
1
SWIG/Lib/python/cni.i
Normal file
1
SWIG/Lib/python/cni.i
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
%include <typemaps/cni.swg>
|
||||||
72
SWIG/Lib/python/jstring.i
Normal file
72
SWIG/Lib/python/jstring.i
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
%include <typemaps/valtypes.swg>
|
||||||
|
|
||||||
|
%fragment(SWIG_AsVal_frag(jstring),"header") {
|
||||||
|
SWIGINTERN int
|
||||||
|
SWIG_AsVal(jstring)(PyObject *obj, jstring *val)
|
||||||
|
{
|
||||||
|
if (obj == Py_None) {
|
||||||
|
if (val) *val = 0;
|
||||||
|
return SWIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
PyObject *tmp = 0;
|
||||||
|
int isunicode = PyUnicode_Check(obj);
|
||||||
|
if (!isunicode && PyString_Check(obj)) {
|
||||||
|
if (val) {
|
||||||
|
obj = tmp = PyUnicode_FromObject(obj);
|
||||||
|
}
|
||||||
|
isunicode = 1;
|
||||||
|
}
|
||||||
|
if (isunicode) {
|
||||||
|
if (val) {
|
||||||
|
if (sizeof(Py_UNICODE) == sizeof(jchar)) {
|
||||||
|
*val = JvNewString((const jchar *) PyUnicode_AS_UNICODE(obj),PyUnicode_GET_SIZE(obj));
|
||||||
|
return SWIG_NEWOBJ;
|
||||||
|
} else {
|
||||||
|
int len = PyUnicode_GET_SIZE(obj);
|
||||||
|
Py_UNICODE *pchars = PyUnicode_AS_UNICODE(obj);
|
||||||
|
*val = JvAllocString (len);
|
||||||
|
jchar *jchars = JvGetStringChars (*val);
|
||||||
|
for (int i = 0; i < len; ++i) {
|
||||||
|
jchars[i] = pchars[i];
|
||||||
|
}
|
||||||
|
return SWIG_NEWOBJ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Py_XDECREF(tmp);
|
||||||
|
return SWIG_OK;
|
||||||
|
}
|
||||||
|
return SWIG_TypeError;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
%fragment(SWIG_From_frag(jstring),"header") {
|
||||||
|
SWIGINTERNINLINE PyObject *
|
||||||
|
SWIG_From(jstring)(jstring js)
|
||||||
|
{
|
||||||
|
if (!js) {
|
||||||
|
return SWIG_Py_Void();
|
||||||
|
}
|
||||||
|
if (sizeof(Py_UNICODE) == sizeof(jchar)) {
|
||||||
|
return PyUnicode_FromUnicode((const Py_UNICODE *) JvGetStringChars(js),
|
||||||
|
js->length());
|
||||||
|
} else {
|
||||||
|
int len = js->length();
|
||||||
|
Py_UNICODE pchars[len];
|
||||||
|
jchar *jchars = JvGetStringChars(js);
|
||||||
|
|
||||||
|
for (int i = 0; i < len; i++) {
|
||||||
|
pchars[i] = jchars[i];
|
||||||
|
}
|
||||||
|
return PyUnicode_FromUnicode((const Py_UNICODE *) pchars, len);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
%typemaps_asvalfrom(%checkcode(STRING),
|
||||||
|
%arg(SWIG_AsVal(jstring)),
|
||||||
|
%arg(SWIG_From(jstring)),
|
||||||
|
%arg(SWIG_AsVal_frag(jstring)),
|
||||||
|
%arg(SWIG_From_frag(jstring)),
|
||||||
|
java::lang::String *);
|
||||||
|
|
||||||
|
|
@ -328,7 +328,7 @@ install-main:
|
||||||
@echo "Installing $(BIN_DIR)/$(TARGET)"
|
@echo "Installing $(BIN_DIR)/$(TARGET)"
|
||||||
@$(INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(BIN_DIR)/$(TARGET)
|
@$(INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(BIN_DIR)/$(TARGET)
|
||||||
|
|
||||||
lib-languages = typemaps tcl perl5 python guile java mzscheme ruby php4 ocaml \
|
lib-languages = gcj typemaps tcl perl5 python guile java mzscheme ruby php4 ocaml \
|
||||||
pike chicken csharp modula3 allegrocl clisp lua cffi
|
pike chicken csharp modula3 allegrocl clisp lua cffi
|
||||||
|
|
||||||
lib-modules = std
|
lib-modules = std
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue