blob: fc100197b7eb01717853cb0ab3ee4766213aa5c7 [file] [log] [blame]
Kiran Ramachandrac92a1222016-03-30 13:05:31 +05301/*
Brian O'Connor5ab426f2016-04-09 01:19:45 -07002 * Copyright 2016-present Open Networking Laboratory
Kiran Ramachandrac92a1222016-03-30 13:05:31 +05303 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.isis.controller;
17
tejeshwer degala3fe1ed52016-04-22 17:04:01 +053018import com.fasterxml.jackson.databind.JsonNode;
mohamed rahil8ea09d42016-04-19 20:47:21 +053019import org.onosproject.isis.controller.topology.IsisRouterListener;
20
Kiran Ramachandrac92a1222016-03-30 13:05:31 +053021import java.util.List;
22
23/**
24 * Representation of an ISIS controller.
25 */
26public interface IsisController {
27
28 /**
29 * Registers a listener for router meta events.
30 *
mohamed rahil8ea09d42016-04-19 20:47:21 +053031 * @param isisRouterListener ISIS router listener instance
Kiran Ramachandrac92a1222016-03-30 13:05:31 +053032 */
33 void addRouterListener(IsisRouterListener isisRouterListener);
34
35 /**
36 * Unregisters a router listener.
37 *
mohamed rahil8ea09d42016-04-19 20:47:21 +053038 * @param isisRouterListener ISIS router listener instance
Kiran Ramachandrac92a1222016-03-30 13:05:31 +053039 */
40 void removeRouterListener(IsisRouterListener isisRouterListener);
41
42 /**
43 * Updates configuration of processes.
44 *
tejeshwer degala3fe1ed52016-04-22 17:04:01 +053045 * @param processesNode json node represents process
Kiran Ramachandrac92a1222016-03-30 13:05:31 +053046 */
tejeshwer degala3fe1ed52016-04-22 17:04:01 +053047 void updateConfig(JsonNode processesNode);
Kiran Ramachandrac92a1222016-03-30 13:05:31 +053048
49 /**
50 * Gets the all configured processes.
51 *
52 * @return list of process instances
53 */
54 List<IsisProcess> allConfiguredProcesses();
55}