/* * Copyright 2017-present 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.ofagent.api; import io.netty.channel.Channel; import org.projectfloodlight.openflow.protocol.OFControllerRole; import java.util.Set; /** * Service for administering the OF role of multiple controllers. */ public interface OFControllerRoleService { /** * Adds a new controller channel. * EQUAL role is set by default. * * @param channel openflow channel */ void addControllerChannel(Channel channel); /** * Deletes the controller channel. * * @param channel openflow channel */ void deleteControllerChannel(Channel channel); /** * Returns controller channels. * * @return set of controller channels */ Set<Channel> controllerChannels(); /** * Sets a role of the controller with a given channel. * * @param channel openflow channel * @param role role of the controller */ void setRole(Channel channel, OFControllerRole role); /** * Returns a role of the controller with a given channel. * * @param channel openflow channel * @return role of the controller */ OFControllerRole role(Channel channel); }