From 1ebf5a5fcda0c9154e22ed02404fd46525a7fd9f Mon Sep 17 00:00:00 2001 From: bossiel Date: Wed, 10 Aug 2011 22:59:15 +0000 Subject: Move deprecated v1.0 from trunk to branches --- bindings/java/java.i | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 bindings/java/java.i (limited to 'bindings/java/java.i') diff --git a/bindings/java/java.i b/bindings/java/java.i new file mode 100644 index 0000000..6872e59 --- /dev/null +++ b/bindings/java/java.i @@ -0,0 +1,79 @@ +/* File : java.i +* http://www.swig.org/Doc1.3/Java.html +*/ + +// http://www.swig.org/Doc1.3/Java.html#enumerations +%include "enums.swg" +%javaconst(1); + + +//================== Mapping void* (Java to C) as ByteBuffer +%typemap(jni) void * "jbyteArray" +%typemap(jtype) void * "java.nio.ByteBuffer" +%typemap(jstype) void * "java.nio.ByteBuffer" +%typemap(javain) void * "$javainput" +%typemap(javaout) void * { return $jnicall; } + +// (From Java to C) +%typemap(in) void * %{ + $1 = jenv->GetDirectBufferAddress($input); +%} + +// (From C to Java) +//%typemap(out) void * %{ +// $result = $1; +//%} +%typemap(javadirectorin) void * "$jniinput" +//================== + + +%typemap(javacode) SipMessage %{ + public byte[] getSipContent() { + final int clen = (int)this.getSipContentLength(); + if(clen>0){ + final java.nio.ByteBuffer buffer = java.nio.ByteBuffer.allocateDirect(clen); + final int read = (int)this.getSipContent(buffer, clen); + final byte[] bytes = new byte[read]; + buffer.get(bytes, 0, read); + return bytes; + } + return null; + } +%} + +%typemap(javacode) SipSession %{ + protected java.nio.ByteBuffer getByteBuffer(byte[] bytes) { + if(bytes != null){ + final java.nio.ByteBuffer byteBuffer = java.nio.ByteBuffer.allocateDirect(bytes.length); + byteBuffer.put(bytes); + return byteBuffer; + } + return null; + } +%} + +%typemap(javacode) PublicationSession %{ + public boolean Publish(byte[] bytes) { + if(bytes != null){ + final java.nio.ByteBuffer byteBuffer = this.getByteBuffer(bytes); + return this.publish(byteBuffer, bytes.length); + } + return false; + } +%} + +%typemap(javacode) XcapMessage %{ + public byte[] getXcapContent() { + final int clen = (int)this.getXcapContentLength(); + if(clen>0){ + final java.nio.ByteBuffer buffer = java.nio.ByteBuffer.allocateDirect(clen); + final int read = (int)this.getXcapContent(buffer, clen); + final byte[] bytes = new byte[read]; + buffer.get(bytes, 0, read); + return bytes; + } + return null; + } +%} + +%include ../_common/tinyWRAP.i -- cgit v1.1