blob: 1374999451fd1aec14ddb45fdb9b76ef968f2912 [file] [log] [blame]
/*
* Copyright 2016 Open Networking Laboratory
*
* Licensed 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.onosproject.tetopology.management.api;
import org.onosproject.net.provider.ProviderService;
import org.onosproject.tetopology.management.api.link.NetworkLink;
import org.onosproject.tetopology.management.api.link.NetworkLinkKey;
import org.onosproject.tetopology.management.api.node.NetworkNode;
import org.onosproject.tetopology.management.api.node.NetworkNodeKey;
import org.onosproject.tetopology.management.api.node.TerminationPoint;
import org.onosproject.tetopology.management.api.node.TerminationPointKey;
/**
* APIs for Provider to notify Manager about the network topology updates.
*/
public interface TeTopologyProviderService
extends ProviderService<TeTopologyProvider> {
/**
* Signals that a Network has been created/updated.
*
* @param network value of the network to be updated
*/
void networkUpdated(Network network);
/**
* Signals that a Network has been removed.
*
* @param networkId network id in URI format
*/
void networkRemoved(KeyId networkId);
/**
* Signals that a Link has been created/updated.
*
* @param linkKey link id
* @param link link object to be updated
*/
void linkUpdated(NetworkLinkKey linkKey, NetworkLink link);
/**
* Signals that a Network has been removed.
*
* @param linkKey link id
*/
void linkRemoved(NetworkLinkKey linkKey);
/**
* Signals that a Node has been created/updated.
*
* @param nodeKey node id
* @param node node object to be updated
*/
void nodeUpdated(NetworkNodeKey nodeKey, NetworkNode node);
/**
* Signals that a Node has been removed.
*
* @param nodeKey node id
*/
void nodeRemoved(NetworkNodeKey nodeKey);
/**
* Signals that a TerminationPoint has been created/updated.
*
* @param terminationPointKey termination point id
* @param terminationPoint termination point object to be updated
*/
void terminationPointUpdated(TerminationPointKey terminationPointKey,
TerminationPoint terminationPoint);
/**
* Signals that a TerminationPoint has been removed.
*
* @param terminationPointKey termination point id
*/
void terminationPointRemoved(TerminationPointKey terminationPointKey);
}