/** * Copyright (c) 2013 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.openflow.md.queue; import java.util.Collection; import java.util.List; import java.util.Map; import org.opendaylight.openflowplugin.api.openflow.md.core.IMDMessageTranslator; import org.opendaylight.openflowplugin.api.openflow.md.core.TranslatorKey; import org.opendaylight.openflowplugin.api.openflow.statistics.MessageSpy; import org.opendaylight.yangtools.yang.binding.DataContainer; import org.opendaylight.yangtools.yang.binding.DataObject; /** * @param <IN> type of DataObject * @param <OUT> type of DataObject */ public interface TicketProcessorFactory<IN extends DataObject, OUT extends DataObject> { /** * @param ticket ticket * @return runnable ticket processor */ Runnable createProcessor(final Ticket<IN, OUT> ticket); /** * @param ticket ticket * @return runnable ticket processor */ Runnable createSyncProcessor(final Ticket<IN, OUT> ticket); /** * @param ticket ticket * @return translated messages * */ List<OUT> translate(Ticket<IN, OUT> ticket); /** * @param ticketFinisher setter */ void setTicketFinisher(TicketFinisher<OUT> ticketFinisher); /** * @param spy setter */ void setSpy(MessageSpy<DataContainer> spy); /** * @param translatorMapping setter */ void setTranslatorMapping(Map<TranslatorKey, Collection<IMDMessageTranslator<IN, List<OUT>>>> translatorMapping); }