// Path: jni/com/mittudev/ipc/Connection.java
// public class Connection{
// 	static{
// 		System.loadLibrary("IPC");
// 	}
// 	private long ptr;
// 	private ConnectionCallback cb;
// 
// 	private Connection(long ptr){
// 		this.ptr = ptr;
// 	}
// 
// 	public Connection(String name, int type){
// 		ptr = connectionCreate(name, type);
// 	}
// 
// 	public static Connection connect(String name, int type){
// 		return new Connection(connectionConnect(name, type));
// 	}
// 
// 	public void startAutoDispatch(){
// 		connectionStartAutoDispatch(ptr);
// 	}
// 
// 	public void stopAutoDispatch(){
// 		connectionStopAutoDispatch(ptr);
// 	}
// 
// 	public void setCallback(ConnectionCallback cb){
// 		this.cb = cb;
// 		connectionSetCallback(ptr, cb);
// 	}
// 
// 	public ConnectionCallback getCallback(){
// 		return cb;
// 	}
// 
// 	public void removeCallback(){
// 		this.cb = null;
// 		connectionRemoveCallback(ptr);
// 	}
// 
// 	public void send(Message msg){
// 		connectionSend(ptr, msg.ptr);
// 	}
// 
// 	public void subscribe(String subject){
// 		connectionSubscribe(ptr, subject);
// 	}
// 
// 	public void removeSubscription(String subject){
// 		connectionRemoveSubscription(ptr, subject);
// 	}
// 
// 	public void close(){
// 		connectionClose(ptr);
// 	}
// 
// 	public void destroy(){
// 		connectionDestroy(ptr);
// 	}
// 
// 	private native static long connectionCreate(String name, int type);
// 	private native static long connectionConnect(String name, int type);
// 	private native void connectionStartAutoDispatch(long ptr);
// 	private native void connectionStopAutoDispatch(long ptr);
// 	private native void connectionSetCallback(long ptr, ConnectionCallback cb);
// 	private native void connectionRemoveCallback(long ptr);
// 	private native void connectionSend(long ptr, long msgPtr);
// 	private native void connectionSubscribe(long ptr, String subject);
// 	private native void connectionRemoveSubscription(long ptr, String subject);
// 	private native void connectionDestroy(long ptr);
// 	private native void connectionClose(long ptr);
// }
// 
// Path: jni/com/mittudev/ipc/Message.java
// public class Message{
// 	static{
// 		System.loadLibrary("IPC");
// 	}
// 	protected long ptr;
// 
// 	protected Message(long ptr){
// 		this.ptr = ptr;
// 	}
// 
// 	public Message(byte[] data){
// 		ptr = messageCreate(data);
// 	}
// 
// 	public void setPID(int pid){
// 		messageSetPID(ptr, pid);
// 	}
// 
// 	public void setSubject(String subject){
// 		messageSetSubject(ptr, subject);
// 	}
// 
// 	public byte[] getData(){
// 		return messageGetData(ptr);
// 	}
// 
// 	public String getSubject(){
// 		return messageGetSubject(ptr);
// 	}
// 
// 	public long getPID(){
// 		return messageGetPID(ptr);
// 	}
// 
// 	public int getType(){
// 		return messageGetType(ptr);
// 	}
// 
// 	public void destroy(){
// 		messageDestroy(ptr);
// 	}
// 
// 	public native long messageCreate(byte[] data);
// 	public native void messageSetPID(long ptr, int pid);
// 	public native void messageSetSubject(long ptr, String subject);
// 	public native byte[] messageGetData(long ptr);
// 	public native String messageGetSubject(long ptr);
// 	public native long messageGetPID(long ptr);
// 	public native int messageGetType(long ptr);
// 	public native void messageDestroy(long ptr);
// }
// 
// Path: jni/com/mittudev/ipc/ConnectionCallback.java
// public interface ConnectionCallback{
// 	public void onMessage(Message msg);
// }


import com.mittudev.ipc.Connection;
import com.mittudev.ipc.Message;
import com.mittudev.ipc.ConnectionCallback;
import java.lang.Thread;

public class Writer {
	public static void main(String[] args) {
		Connection conn = Connection.connect("ipcdemo", 1);

		System.out.println("Sent: message1");
// Path: jni/com/mittudev/ipc/Connection.java
// public class Connection{
// 	static{
// 		System.loadLibrary("IPC");
// 	}
// 	private long ptr;
// 	private ConnectionCallback cb;
// 
// 	private Connection(long ptr){
// 		this.ptr = ptr;
// 	}
// 
// 	public Connection(String name, int type){
// 		ptr = connectionCreate(name, type);
// 	}
// 
// 	public static Connection connect(String name, int type){
// 		return new Connection(connectionConnect(name, type));
// 	}
// 
// 	public void startAutoDispatch(){
// 		connectionStartAutoDispatch(ptr);
// 	}
// 
// 	public void stopAutoDispatch(){
// 		connectionStopAutoDispatch(ptr);
// 	}
// 
// 	public void setCallback(ConnectionCallback cb){
// 		this.cb = cb;
// 		connectionSetCallback(ptr, cb);
// 	}
// 
// 	public ConnectionCallback getCallback(){
// 		return cb;
// 	}
// 
// 	public void removeCallback(){
// 		this.cb = null;
// 		connectionRemoveCallback(ptr);
// 	}
// 
// 	public void send(Message msg){
// 		connectionSend(ptr, msg.ptr);
// 	}
// 
// 	public void subscribe(String subject){
// 		connectionSubscribe(ptr, subject);
// 	}
// 
// 	public void removeSubscription(String subject){
// 		connectionRemoveSubscription(ptr, subject);
// 	}
// 
// 	public void close(){
// 		connectionClose(ptr);
// 	}
// 
// 	public void destroy(){
// 		connectionDestroy(ptr);
// 	}
// 
// 	private native static long connectionCreate(String name, int type);
// 	private native static long connectionConnect(String name, int type);
// 	private native void connectionStartAutoDispatch(long ptr);
// 	private native void connectionStopAutoDispatch(long ptr);
// 	private native void connectionSetCallback(long ptr, ConnectionCallback cb);
// 	private native void connectionRemoveCallback(long ptr);
// 	private native void connectionSend(long ptr, long msgPtr);
// 	private native void connectionSubscribe(long ptr, String subject);
// 	private native void connectionRemoveSubscription(long ptr, String subject);
// 	private native void connectionDestroy(long ptr);
// 	private native void connectionClose(long ptr);
// }
// 
// Path: jni/com/mittudev/ipc/Message.java
// public class Message{
// 	static{
// 		System.loadLibrary("IPC");
// 	}
// 	protected long ptr;
// 
// 	protected Message(long ptr){
// 		this.ptr = ptr;
// 	}
// 
// 	public Message(byte[] data){
// 		ptr = messageCreate(data);
// 	}
// 
// 	public void setPID(int pid){
// 		messageSetPID(ptr, pid);
// 	}
// 
// 	public void setSubject(String subject){
// 		messageSetSubject(ptr, subject);
// 	}
// 
// 	public byte[] getData(){
// 		return messageGetData(ptr);
// 	}
// 
// 	public String getSubject(){
// 		return messageGetSubject(ptr);
// 	}
// 
// 	public long getPID(){
// 		return messageGetPID(ptr);
// 	}
// 
// 	public int getType(){
// 		return messageGetType(ptr);
// 	}
// 
// 	public void destroy(){
// 		messageDestroy(ptr);
// 	}
// 
// 	public native long messageCreate(byte[] data);
// 	public native void messageSetPID(long ptr, int pid);
// 	public native void messageSetSubject(long ptr, String subject);
// 	public native byte[] messageGetData(long ptr);
// 	public native String messageGetSubject(long ptr);
// 	public native long messageGetPID(long ptr);
// 	public native int messageGetType(long ptr);
// 	public native void messageDestroy(long ptr);
// }
// 
// Path: jni/com/mittudev/ipc/ConnectionCallback.java
// public interface ConnectionCallback{
// 	public void onMessage(Message msg);
// }


// Path: examples/java/Writer.java
import com.mittudev.ipc.Connection;
import com.mittudev.ipc.Message;
import com.mittudev.ipc.ConnectionCallback;
import java.lang.Thread;


public class Writer {
	public static void main(String[] args) {
		Connection conn = Connection.connect("ipcdemo", 1);

		System.out.println("Sent: message1");
		Message msg = new Message("Message 1".getBytes());