package com.alipay.bluewhale.core.zilch;
import org.apache.log4j.Logger;
import org.zeromq.ZMQ;
import org.zeromq.ZMQ.Context;
import org.zeromq.ZMQ.Socket;
import com.alipay.bluewhale.core.utils.StormUtils;
/**
* zeromq �Ļ�����װ
* @author yannian
*
*/
public class ZeroMq {
private static Logger LOG = Logger.getLogger(ZeroMq.class);
public static Context context(int threads) {
try {
return ZMQ.context(threads);
} catch (UnsatisfiedLinkError e) {
LOG.error("context", e);
}
return null;
}
public static int sndmore = ZMQ.SNDMORE;
public static int req = ZMQ.REQ;
public static int rep = ZMQ.REP;
public static int xreq = ZMQ.XREQ;
public static int xrep = ZMQ.XREP;
public static int pub = ZMQ.PUB;
public static int sub = ZMQ.SUB;
public static int pair = ZMQ.PAIR;
public static int push = ZMQ.PUSH;
public static int pull = ZMQ.PULL;
public static byte[] barr(Short v) {
return StormUtils.barr(v);
}
public static byte[] barr(Integer v) {
return StormUtils.barr(v);
}
public static Socket socket(Context context, int type) {
return context.socket(type);
}
public static Socket set_linger(Socket socket, long linger_ms) {
socket.setLinger(linger_ms);
return socket;
}
public static Socket set_hwm(Socket socket, long hwm) {
socket.setHWM(hwm);
return socket;
}
public static Socket bind(Socket socket, String url) {
socket.bind(url);
return socket;
}
public static Socket connect(Socket socket, String url) {
socket.connect(url);
return socket;
}
public static Socket subscribe(Socket socket, byte[] topic) {
socket.subscribe(topic);
return socket;
}
public static Socket subscribe(Socket socket) {
byte[] topic = {};
return subscribe(socket, topic);
}
public static Socket unsubscribe(Socket socket, byte[] topic) {
socket.unsubscribe(topic);
return socket;
}
public static Socket unsubscribe(Socket socket) {
byte[] topic = {};
return unsubscribe(socket, topic);
}
public static Socket send(Socket socket, byte[] message, int flags) {
socket.send(message, flags);
return socket;
}
public static Socket send(Socket socket, byte[] message) {
return send(socket, message, ZMQ.NOBLOCK);
}
public static byte[] recv(Socket socket, int flags) {
return socket.recv(flags);
}
public static byte[] recv(Socket socket) {
return recv(socket, 0);
}
}