/* * ProActive Parallel Suite(TM): * The Open Source library for parallel and distributed * Workflows & Scheduling, Orchestration, Cloud Automation * and Big Data Analysis on Enterprise Grids & Clouds. * * Copyright (c) 2007 - 2017 ActiveEon * Contact: contact@activeeon.com * * This library is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation: version 3 of * the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * If needed, contact us to obtain a release under GPL Version 2 or 3 * or a different license than the AGPL. */ package org.ow2.proactive.resourcemanager.frontend; import org.objectweb.proactive.annotation.PublicAPI; import org.ow2.proactive.resourcemanager.common.event.RMEventType; import org.ow2.proactive.resourcemanager.common.event.RMInitialState; import org.ow2.proactive.resourcemanager.exception.RMException; /** * An interface Front-End for the Monitoring of the Resource Manager. * This interface provides a way for a monitor to ask at * Resource Manager to throw events * generated by nodes and nodes sources management. * * @see org.ow2.proactive.resourcemanager.frontend.RMEventListener * @author The ProActive Team * @since ProActive Scheduling 0.9 */ @PublicAPI public interface RMMonitoring { /** * ping the RM * * @return true if the RM is still alive */ @Deprecated boolean isAlive(); /** Register a new Resource manager listener. * Way to a monitor object to ask at RMMonitoring to throw * RM events to it. * @param listener a listener object which implements {@link RMEventListener} * interface. * @param events list of wanted events that must be received. * @return RMInitialState snapshot of RM's current state : nodes and node sources. */ RMInitialState addRMEventListener(RMEventListener listener, RMEventType... events); /** * Removes a listener from RMMonitoring. Only listener itself must call this method */ void removeRMEventListener() throws RMException; /** * Gets the current snapshot of the resource manager state providing * detailed nodes and node source information. * * To obtain summary of the resource manager state use {@link ResourceManager}.getState() * * @return the current state of the resource manager */ RMInitialState getState(); }