package org.dcache.services.info.gathers.topo; import java.util.HashSet; import java.util.Map; import java.util.Set; import dmg.cells.nucleus.EnvironmentAware; import dmg.cells.nucleus.Environments; import dmg.cells.nucleus.UOID; import org.dcache.services.info.base.StateExhibitor; import org.dcache.services.info.base.StateUpdateManager; import org.dcache.services.info.gathers.DgaFactoryService; import org.dcache.services.info.gathers.MessageMetadataRepository; import org.dcache.services.info.gathers.MessageSender; import org.dcache.services.info.gathers.Schedulable; import org.dcache.services.info.gathers.SingleMessageDga; import static org.dcache.services.info.Configuration.PROPERTY_NAME_SERVICE_TOPO; /** * This class provides monitoring activity against the topo cell. * * @author Paul Millar <paul.millar@desy.de> */ public class TopoDgaFactoryService implements DgaFactoryService, EnvironmentAware { private String _topo; @Override public Set<Schedulable> createDgas(StateExhibitor exhibitor, MessageSender sender, StateUpdateManager sum, MessageMetadataRepository<UOID> msgMetaRepo) { Set<Schedulable> activity = new HashSet<>(); activity.add(new SingleMessageDga(sender, _topo, "gettopomap", new TopoMapHandler(sum, msgMetaRepo), 120)); return activity; } @Override public void setEnvironment(Map<String, Object> environment) { _topo = Environments.getValue(environment, PROPERTY_NAME_SERVICE_TOPO); } }