diff options
| author | Martin Sustrik <sustrik@fastmq.commkdir> | 2009-09-02 10:23:01 +0200 | 
|---|---|---|
| committer | Martin Sustrik <sustrik@fastmq.commkdir> | 2009-09-02 10:23:01 +0200 | 
| commit | 5e08a89d1c0edf44e15f262dd0f27a1c03bcd699 (patch) | |
| tree | eba28221c1e5e69418078df406609e8d3dffe64c /java/org/zmq | |
| parent | 6a5120b1f1c48d19b777f76ac756b00fb624d110 (diff) | |
| parent | 1f06d99a0f563fdc32e9c00392f9875ba3009593 (diff) | |
Merge branch 'master' of git@github.com:sustrik/zeromq2
Diffstat (limited to 'java/org/zmq')
| -rw-r--r-- | java/org/zmq/Context.java | 47 | ||||
| -rw-r--r-- | java/org/zmq/Message.java | 66 | ||||
| -rw-r--r-- | java/org/zmq/Socket.java | 141 | 
3 files changed, 254 insertions, 0 deletions
diff --git a/java/org/zmq/Context.java b/java/org/zmq/Context.java new file mode 100644 index 0000000..8bc4d57 --- /dev/null +++ b/java/org/zmq/Context.java @@ -0,0 +1,47 @@ +/* +    Copyright (c) 2007-2009 FastMQ Inc. + +    This file is part of 0MQ. + +    0MQ is free software; you can redistribute it and/or modify it under +    the terms of the Lesser GNU General Public License as published by +    the Free Software Foundation; either version 3 of the License, or +    (at your option) any later version. + +    0MQ is distributed in the hope that it will be useful, +    but WITHOUT ANY WARRANTY; without even the implied warranty of +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +    Lesser GNU General Public License for more details. + +    You should have received a copy of the Lesser GNU General Public License +    along with this program.  If not, see <http://www.gnu.org/licenses/>. +*/ + +package org.zmq; + +public class Context { +    static { +        System.loadLibrary("jzmq"); +    } + +    /** +     * Class constructor. +     * +     * @param appThreads maximum number of application threads. +     * @param ioThreads size of the threads pool to handle I/O operations. +     */ +    public Context (int appThreads, int ioThreads) { +        construct (appThreads, ioThreads); +    } + +    public native long createSocket (int type); + +    /** Initialize the JNI interface */ +    protected native void construct (int appThreads, int ioThreads); + +    /** Free resources used by JNI driver. */ +    protected native void finalize (); + +    /** Opaque data used by JNI driver. */ +    private long contextHandle; +} diff --git a/java/org/zmq/Message.java b/java/org/zmq/Message.java new file mode 100644 index 0000000..3691410 --- /dev/null +++ b/java/org/zmq/Message.java @@ -0,0 +1,66 @@ +/* +    Copyright (c) 2007-2009 FastMQ Inc. + +    This file is part of 0MQ. + +    0MQ is free software; you can redistribute it and/or modify it under +    the terms of the Lesser GNU General Public License as published by +    the Free Software Foundation; either version 3 of the License, or +    (at your option) any later version. + +    0MQ is distributed in the hope that it will be useful, +    but WITHOUT ANY WARRANTY; without even the implied warranty of +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +    Lesser GNU General Public License for more details. + +    You should have received a copy of the Lesser GNU General Public License +    along with this program.  If not, see <http://www.gnu.org/licenses/>. +*/ + +package org.zmq; + +public class Message { +    static { +        System.loadLibrary("jzmq"); +    } + +    /** +     * Class constructor. +     */ +    public Message () { +        construct (); +    } + +    public Message (byte [] payload) { +        constructWithData (payload); +    } + +    /** +     * Get message payload. +     */ +    public native byte [] getMsgPayload (); + +    /** +     * Get message type. +     */ +    public native int getMsgType (); + +    /** +     * Get low-level message handler. +     */ +    public long getMsgHandle () { +        return msgHandle; +    } + +    /** Initialize the JNI interface */ +    protected native void construct (); + +    protected native void constructWithData (byte [] payload); + +    /** Free resources used by JNI driver. */ +    protected native void finalize (); + +    /** Opaque data used by JNI driver. */ +    private long msgHandle; +} + diff --git a/java/org/zmq/Socket.java b/java/org/zmq/Socket.java new file mode 100644 index 0000000..3bfbfec --- /dev/null +++ b/java/org/zmq/Socket.java @@ -0,0 +1,141 @@ +/* +    Copyright (c) 2007-2009 FastMQ Inc. + +    This file is part of 0MQ. + +    0MQ is free software; you can redistribute it and/or modify it under +    the terms of the Lesser GNU General Public License as published by +    the Free Software Foundation; either version 3 of the License, or +    (at your option) any later version. + +    0MQ is distributed in the hope that it will be useful, +    but WITHOUT ANY WARRANTY; without even the implied warranty of +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +    Lesser GNU General Public License for more details. + +    You should have received a copy of the Lesser GNU General Public License +    along with this program.  If not, see <http://www.gnu.org/licenses/>. +*/ + +package org.zmq; + +public class Socket { +    static { +        System.loadLibrary("jzmq"); +    } + +    public static final int ZMQ_MAX_VSM_SIZE = 30; + +    public static final int ZMQ_GAP = 1; + +    public static final int ZMQ_DELIMITER = 31; + +    public static final int ZMQ_NOBLOCK = 1; + +    public static final int ZMQ_NOFLUSH = 2; + +    public static final int ZMQ_P2P = 0; + +    public static final int ZMQ_PUB = 1; + +    public static final int ZMQ_SUB = 2; + +    /** +     * Class constructor. +     * +     * @param context +     * @param type +     */ +    public Socket (Context context, int type) { +        ctx = context; +        construct (context, type); +    } + +    /** +     * Set the high watermark on the socket. +     * +     * @param hwm high watermark. +     */ +    public native void setHwm (long hwm); + +    /** +     * Set the low watermark on the socket. +     * +     * @param lwm low watermark. +     */ +    public native void setLwm (long lwm); + +    /** +     * Set swap size. +     * +     * @param swap_size swap size. +     */ +    public native void setSwap (long swap_size); + +    /** +     * Set reception mask. +     * +     * @param mask mask. +     */ +    public native void setMask (long mask); + +    /** +     * Set affinity. +     * +     * @param affinity +     */ +    public native void setAffinity (long affinity); + +    /** +     * Set identity. +     * +     * @param identity +     */ +    public native void setIdentity (String identity); + +    /** +     * @param addr +     */ +    public native void bind (String addr); + +    /** +     * Connect. +     * +     * @param addr +     */ +    public native void connect (String addr); + +    /** +     * Send. +     * +     * @param message +     * @param block +     */ +    public native int send (Message msg, long flags); + +    /** +     * Flush all messages sent with flush flag false down the stream. +     */ +    public native void flush (); + +    /** +     * Receive message. +     * +     * @param block +     * @return +     */ +    public native Message recv (long flags); + +    /** Initialize JNI driver */ +    protected native void construct (Context context, int type); + +    /** Free all resources used by JNI driver. */ +    protected native void finalize (); + +    /** Keep reference to ZMQ context so it is not garbage collected */ +    private Context ctx; + +    /** Opaque data used by JNI driver. */ +    private long socketHandle; + +}  | 
