package org.zstack.core.progressbar;
import org.springframework.beans.factory.annotation.Autowired;
import org.zstack.core.cloudbus.CloudBus;
import org.zstack.header.message.APIMessage;
import org.zstack.header.message.Message;
public class ProgressBarFacadeImpl implements ProgressBarFacade {
public static final String API_ID = "ProgressBar.API_ID";
@Autowired
private CloudBus bus;
public void report(Message msg, String description) {
String apiId = msg.getHeaderEntry(API_ID);
if (apiId == null) {
return;
}
InProgressEvent inevt = new InProgressEvent(apiId, description);
bus.publish(inevt);
}
@Override
public void report(Message msg, String description, long total, long current) {
String apiId = msg.getHeaderEntry(API_ID);
if (apiId == null) {
return;
}
FixedInProgressEvent fevt = new FixedInProgressEvent(apiId, description, total, current);
bus.publish(fevt);
}
@Override
public void progagateContext(Message src, Message dest) {
String apiId = src.getHeaderEntry(API_ID);
if (apiId == null) {
return;
}
dest.putHeaderEntry(API_ID, apiId);
}
@Override
public void setContextToApiMessage(APIMessage msg) {
msg.putHeaderEntry(API_ID, msg.getId());
}
}