/* * 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.ignite.internal.managers.discovery; import java.util.Collection; import org.apache.ignite.cluster.ClusterNode; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; /** * Topology snapshot managed by discovery manager. */ public class GridDiscoveryTopologySnapshot { /** Topology version. */ private long topVer; /** Topology nodes. */ @GridToStringInclude private Collection<ClusterNode> topNodes; /** * Creates a topology snapshot with given topology version and topology nodes. * * @param topVer Topology version. * @param topNodes Topology nodes. */ public GridDiscoveryTopologySnapshot(long topVer, Collection<ClusterNode> topNodes) { this.topVer = topVer; this.topNodes = topNodes; } /** * Gets topology version if this event is raised on * topology change and configured discovery SPI implementation * supports topology versioning. * * @return Topology version or {@code 0} if configured discovery SPI implementation * does not support versioning. */ public long topologyVersion() { return topVer; } /** * Gets topology nodes from topology snapshot. If SPI implementation does not support * versioning, the best effort snapshot will be captured. * * @return Topology snapshot. */ public Collection<ClusterNode> topologyNodes() { return topNodes; } /** {@inheritDoc} */ @Override public String toString() { return S.toString(GridDiscoveryTopologySnapshot.class, this); } }