package com.alipay.bluewhale.core.messaging; import java.util.Set; import org.zeromq.ZMQ.Context; import backtype.storm.daemon.Shutdownable; import com.alipay.bluewhale.core.callback.RunnableCallback; import com.alipay.bluewhale.core.zilch.VirtualPort; import com.alipay.bluewhale.core.zilch.ZeroMq; public class MsgLoader { public static IContext mk_zmq_context(int num_threads, int linger, boolean local) { Context context = ZeroMq.context(num_threads); return new ZMQContext(context, linger, local); } public static Shutdownable launchVirtualPort(boolean local, IContext context, Integer port, boolean daemon, RunnableCallback kill_fn, Integer priority, Set<Integer> valid_ports) throws InterruptedException { String url = "ipc://" + port + ".ipc"; if (!local) { url = "tcp://*:" + port; } return VirtualPort.launch_virtual_port(context.zmq_context(), url, daemon, kill_fn, priority, valid_ports); } }