| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more contributor license |
| * agreements. See the NOTICE file distributed with this work for additional information regarding |
| * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance with the License. You may obtain a |
| * copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software distributed under the License |
| * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express |
| * or implied. See the License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package org.apache.geode.internal.admin; |
| |
| import org.apache.geode.distributed.internal.DistributionManager; |
| import org.apache.geode.distributed.internal.InternalDistributedSystem; |
| |
| /** |
| * This interface is the point of entry into a GemFire distributed system for the admin API. It |
| * provides methods for discovering the nodes of a system, registering listeners for nodes which |
| * join and leave the system, and for accessing known peers of the manager agent to be used for |
| * failover. |
| */ |
| public interface GfManagerAgent { |
| |
| /** |
| * Disconnects this agent from the distributed system. |
| * |
| * @return true if this call resulted in being disconnected |
| */ |
| boolean disconnect(); |
| |
| /** |
| * Returns whether or not the agent is connected to the distributed system. |
| */ |
| boolean isConnected(); |
| |
| /** |
| * Returns whether or not this manager agent has created admin objects for the initial members of |
| * the distributed system. |
| * |
| * @since GemFire 4.0 |
| */ |
| boolean isInitialized(); |
| |
| /** |
| * Returns whether or not the agent is listening for messages from the distributed system. |
| */ |
| boolean isListening(); |
| |
| /** |
| * Returns information about the application VMs that are members of the distributed system. |
| */ |
| ApplicationVM[] listApplications(); |
| |
| /** |
| * Returns a list of the other distributed systems that this agent knows about. Currently (GemFire |
| * 3.0) the agent does not know about any other distributed systems. |
| */ |
| GfManagerAgent[] listPeers(); |
| |
| /** |
| * Registers a <code>JoinLeaveListener</code>. on this agent that is notified when membership in |
| * the distributed system changes. |
| */ |
| void addJoinLeaveListener(JoinLeaveListener observer); |
| |
| /** |
| * Sets the <code>CacheCollector</code> to which this agent delivers {@link CacheSnapshot}s. |
| */ |
| void setCacheCollector(CacheCollector collector); |
| |
| /** |
| * Deregisters a <code>JoinLeaveListener</code> from this agent. |
| */ |
| void removeJoinLeaveListener(JoinLeaveListener observer); |
| |
| // public void addSnapshotListener(SnapshotListener listener); |
| |
| // public void removeSnapshotListener(SnapshotListener listener); |
| |
| /** |
| * Returns the distribution manager used by this manager agent. |
| * |
| * @since GemFire 3.5 |
| */ |
| DistributionManager getDM(); |
| |
| /** |
| * Sets the alert level for this manager agent. |
| */ |
| void setAlertLevel(int level); |
| |
| /** |
| * Returns the distributed system that is administered by this agent. |
| * |
| * @since GemFire 4.0 |
| */ |
| InternalDistributedSystem getDSConnection(); |
| |
| } |