package org.zbus.client;
import java.io.IOException;
import org.zbus.common.protocol.Proto;
import org.zbus.common.remoting.Message;
import org.zbus.common.remoting.ticket.ResultCallback;
/**
* 生产者,
* @author 洪磊明(rushmore)
*
*/
public class Producer {
private final Broker broker;
private final String mq;
private String accessToken = "";
private String registerToken = "";
public Producer(Broker broker, String mq) {
this.broker = broker;
this.mq = mq;
}
public Producer(MqConfig config){
this.broker = config.getBroker();
this.mq = config.getMq();
this.accessToken = config.getAccessToken();
this.registerToken = config.getRegisterToken();
}
public void send(Message msg, final ResultCallback callback)
throws IOException {
msg.setCommand(Proto.Produce);
msg.setMq(this.mq);
msg.setToken(this.accessToken);
broker.invokeAsync(msg, callback);
}
public Message sendSync(Message msg, int timeout) throws IOException{
msg.setCommand(Proto.Produce);
msg.setMq(this.mq);
msg.setToken(this.accessToken);
return broker.invokeSync(msg, timeout);
}
public String getAccessToken() {
return accessToken;
}
public void setAccessToken(String accessToken) {
this.accessToken = accessToken;
}
public String getRegisterToken() {
return registerToken;
}
public void setRegisterToken(String registerToken) {
this.registerToken = registerToken;
}
}