package com.intrbiz.bergamot.agent.handler; import org.hyperic.sigar.Humidor; import org.hyperic.sigar.SigarException; import org.hyperic.sigar.SigarProxy; import org.hyperic.sigar.Who; import com.intrbiz.bergamot.model.message.agent.AgentMessage; import com.intrbiz.bergamot.model.message.agent.check.CheckWho; import com.intrbiz.bergamot.model.message.agent.error.GeneralError; import com.intrbiz.bergamot.model.message.agent.stat.WhoStat; import com.intrbiz.bergamot.model.message.agent.stat.who.WhoInfo; public class WhoInfoHandler extends AbstractAgentHandler { private SigarProxy sigar = Humidor.getInstance().getSigar(); public WhoInfoHandler() { super(); } @Override public Class<?>[] getMessages() { return new Class[] { CheckWho.class }; } @Override public AgentMessage handle(AgentMessage request) { try { WhoStat stat = new WhoStat(request); for (Who who : this.sigar.getWhoList()) { WhoInfo info = new WhoInfo(); info.setUser(who.getUser()); info.setHost(who.getHost()); info.setDevice(who.getDevice()); info.setTime(who.getTime()); stat.getUsers().add(info); } return stat; } catch (SigarException e) { return new GeneralError(e.getMessage()); } } }