BUG-1075: ingress back pressure
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / queue / TicketProcessorFactory.java
1 /**
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.openflowplugin.openflow.md.queue;
9
10 import java.util.Collection;
11 import java.util.List;
12 import java.util.Map;
13
14 import org.opendaylight.openflowplugin.openflow.md.core.IMDMessageTranslator;
15 import org.opendaylight.openflowplugin.openflow.md.core.TranslatorKey;
16 import org.opendaylight.yangtools.yang.binding.DataContainer;
17 import org.opendaylight.yangtools.yang.binding.DataObject;
18
19 /**
20  * @param <IN>
21  * @param <OUT>
22  */
23 public interface TicketProcessorFactory<IN extends DataObject, OUT extends DataObject> {
24
25     /**
26      * @param ticket
27      * @return runnable ticket processor
28      */
29     Runnable createProcessor(final Ticket<IN, OUT> ticket);
30
31     /**
32      * @param ticket
33      * @return runnable ticket processor
34      */
35     Runnable createSyncProcessor(final Ticket<IN, OUT> ticket);
36
37     /**
38      * @param ticket
39      * @return translated messages
40      * 
41      */
42     List<OUT> translate(Ticket<IN, OUT> ticket);
43
44     /**
45      * @param ticketFinisher setter
46      */
47     void setTicketFinisher(TicketFinisher<OUT> ticketFinisher);
48
49     /**
50      * @param spy setter
51      */
52     void setSpy(MessageSpy<DataContainer> spy);
53
54     /**
55      * @param translatorMapping setter
56      */
57     void setTranslatorMapping(Map<TranslatorKey, Collection<IMDMessageTranslator<IN, List<OUT>>>> translatorMapping);
58 }