2 * Copyright (c) 2013, 2015 IBM Corporation and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.openflowplugin.openflow.md.core;
11 import java.util.List;
13 import org.opendaylight.openflowplugin.api.openflow.md.core.IMDMessageTranslator;
14 import org.opendaylight.openflowplugin.api.openflow.md.queue.PopListener;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
16 import org.opendaylight.yangtools.yang.binding.DataObject;
18 public interface IMDController {
21 * Allows application to start translating OF messages received from switches.
24 * the type of OF message that applications want to receive
25 * @param version corresponding OF version
27 * : Object that implements the {@link org.opendaylight.openflowplugin.api.openflow.md.core.IMDMessageTranslator}
29 public void addMessageTranslator(Class<? extends DataObject> messageType, int version, IMDMessageTranslator<OfHeader, List<DataObject>> translator);
32 * Allows application to stop receiving OF message received from switches.
35 * The type of OF message that applications want to stop
39 * The object that implements the {@link IMDMessageTranslator}
41 public void removeMessageTranslator(Class<? extends DataObject> messageType, int version, IMDMessageTranslator<OfHeader, List<DataObject>> translator);
44 * Allows application to start pop-listening MD-SAL messages received from switches.
47 * the type of OF message that applications want to receive
49 * : Object that implements the {@link PopListener}
51 void removeMessagePopListener(Class<? extends DataObject> messageType, PopListener<DataObject> popListener);
54 * Allows application to stop pop-listening MD-SAL messages received from switches.
57 * the type of OF message that applications want to receive
59 * : Object that implements the {@link PopListener}
61 void addMessagePopListener(Class<? extends DataObject> messageType, PopListener<DataObject> popListener);