package org.epics.archiverappliance.engine.bpl.reports;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.epics.archiverappliance.common.BPLAction;
import org.epics.archiverappliance.config.ConfigService;
import org.epics.archiverappliance.engine.model.ArchiveChannel;
import org.epics.archiverappliance.engine.pv.EngineContext;
import org.epics.archiverappliance.utils.ui.MimeTypeConstants;
/**
* Lists all the channels that are currently active
* @author mshankar
*
*/
public class ListAllChannels implements BPLAction {
@Override
public void execute(HttpServletRequest req, HttpServletResponse resp, ConfigService configService) throws IOException {
EngineContext engineRuntime = configService.getEngineContext();
resp.setContentType(MimeTypeConstants.APPLICATION_JSON);
try(PrintWriter out = resp.getWriter()) {
out.println("[");
boolean first = true;
for(Map.Entry<String,ArchiveChannel> entry: engineRuntime.getChannelList().entrySet()) {
if(first) { first = false; } else { out.println(","); }
out.print("\"");
out.print(entry.getKey());
out.print("\"");
for(String metaChannelName : entry.getValue().getMetaPVNames()) {
out.print("\"");
out.print(metaChannelName);
out.print("\"");
}
}
out.println();
out.println("]");
}
}
}