93 lines
2.5 KiB
OpenEdge ABL
93 lines
2.5 KiB
OpenEdge ABL
/* 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;
|
|
}
|
|
%}
|
|
|
|
%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 |