doubango/bindings/java/java.i
c732d49e
 /* 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(jtype) unsigned char* BUFFER "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"
 //==================
 
175b478c
 //======== RegistrationSession ========//
c732d49e
 %typemap(javaimports) RegistrationSession%{
 import java.nio.ByteBuffer;
 %}
 %typemap(javacode) RegistrationSession %{
   public boolean registerWithMcpttInfo(byte[] buffer) {
 	ByteBuffer payload = ByteBuffer.allocateDirect(buffer.length);
     payload.put(buffer);
     return this.registerWithMcpttInfo(payload, payload.capacity());
   }
 %}
 
 %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;
   }
   public byte[] getSipContentMbms() {
     final int clen = (int)this.getSipContentLength();
     if(clen>0){
 		final java.nio.ByteBuffer buffer = java.nio.ByteBuffer.allocateDirect(clen);
         final int read = (int)this.getSipContentMbms(buffer, clen);
         final byte[] bytes = new byte[read];
         buffer.get(bytes, 0, read);
         return bytes;
     }
     return null;
   }
   public byte[] getSipContentSdp() {
     final int clen = (int)this.getSipContentLength();
     if(clen>0){
 		final java.nio.ByteBuffer buffer = java.nio.ByteBuffer.allocateDirect(clen);
         final int read = (int)this.getSipContentSdp(buffer, clen);
         final byte[] bytes = new byte[read];
         buffer.get(bytes, 0, read);
         return bytes;
     }
     return null;
   }
   public byte[] getSipContentContetType(String content_type) {
     final int clen = (int)this.getSipContentLength();
     if(clen>0){
 		final java.nio.ByteBuffer buffer = java.nio.ByteBuffer.allocateDirect(clen);
         final int read = (int)this.getSipContentContetType(buffer, clen,content_type);
         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;
   }
 %}
 
 %typemap(javacode) T140CallbackData %{
   public byte[] getData() {
     final int size = (int)this.getSize();
     if(size > 0){
 		final java.nio.ByteBuffer buffer = java.nio.ByteBuffer.allocateDirect(size);
         final int read = (int)this.getData(buffer, size);
         final byte[] bytes = new byte[read];
         buffer.get(bytes, 0, read);
         return bytes;
     }
     return null;
   }
 %}
 
 %include ../_common/tinyWRAP.i