/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.monitoring.system.internal; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import de.rcenvironment.core.monitoring.system.api.OperatingSystemException; import de.rcenvironment.core.monitoring.system.api.RemotableSystemMonitoringService; import de.rcenvironment.core.monitoring.system.api.SystemMonitoringDataSnapshotListener; import de.rcenvironment.core.utils.common.rpc.RemoteOperationException; import de.rcenvironment.toolkit.modules.concurrency.api.TaskDescription; /** * Implementation of {@link Runnable} for fetching monitoring data. * * @author David Scholz * @author Robert Mischke */ public class AsyncSystemMonitoringDataFetchTask implements Runnable { private static final Log LOGGER = LogFactory.getLog(AsyncSystemMonitoringDataFetchTask.class); private RemotableSystemMonitoringService service; private SystemMonitoringDataSnapshotListener listener; public AsyncSystemMonitoringDataFetchTask(SystemMonitoringDataSnapshotListener callbackListener, RemotableSystemMonitoringService service) { this.listener = callbackListener; this.service = service; } @Override @TaskDescription("Fetching monitoring data...") public void run() { try { listener.onMonitoringDataChanged(service.getCompleteSnapshot()); } catch (OperatingSystemException | RemoteOperationException e) { LOGGER.warn("Error fetching monitoring data: " + e.toString()); } } }