All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opendaylight.openflowplugin.applications.statistics.manager.StatNodeRegistration Maven / Gradle / Ivy

There is a newer version: 0.4.4-Carbon
Show newest version
/**
 * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/epl-v10.html
 */

package org.opendaylight.openflowplugin.applications.statistics.manager;

import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.flow.node.SwitchFeatures;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.OpendaylightInventoryListener;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;

/**
 * statistics-manager
 * org.opendaylight.openflowplugin.applications.statistics.manager.impl
 *
 * StatNodeRegistration
 * Class represents {@link org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode}
 * {@link org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener} in Operational/DataStore for ADD / REMOVE
 * actions which are represented connect / disconnect OF actions. Connect functionality are expecting
 *
 * @author Vaclav Demcak
 *
 * Created: Sep 5, 2014
 */
public interface StatNodeRegistration extends OpendaylightInventoryListener, AutoCloseable {

    /**
     * Method contains {@link org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode} registration to {@link StatisticsManager}
     * for permanently collecting statistics by {@link StatPermCollector} and
     * as a prevention to use a validation check to the Operational/DS for identify
     * connected {@link org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode}.
     *
     * @param keyIdent
     * @param data
     * @param nodeIdent
     */
    void connectFlowCapableNode(InstanceIdentifier keyIdent,
            SwitchFeatures data, InstanceIdentifier nodeIdent);

    /**
     * Method cut {@link Node} registration for {@link StatPermCollector}
     *
     * @param keyIdent
     */
    void disconnectFlowCapableNode(InstanceIdentifier keyIdent);

    /**
     * Method returns if *this* instance of the stats-manager is owner of the node
     * @param node Given Node
     * @return true if owner, else false
     */
    boolean isFlowCapableNodeOwner(NodeId node);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy