Extracted (De)SerializerExtensionProvider interfaces from SwitchConnectionProvider
[openflowjava.git] / openflow-protocol-api / src / main / java / org / opendaylight / openflowjava / protocol / api / extensibility / DeserializerExtensionProvider.java
1 /*\r
2  * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 \r
9 package org.opendaylight.openflowjava.protocol.api.extensibility;\r
10 \r
11 import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;\r
12 import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterActionDeserializerKey;\r
13 import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterDeserializerKey;\r
14 import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterInstructionDeserializerKey;\r
15 \r
16 /**\r
17  * Provides methods for deserialization part of extensibility\r
18  * @author michal.polkorab\r
19  */\r
20 public interface DeserializerExtensionProvider {\r
21 \r
22     /**\r
23      * Unregisters custom deserializer\r
24      * @param key used for deserializer lookup\r
25      * @return true if deserializer was removed,\r
26      *  false if no deserializer was found under specified key\r
27      */\r
28     public boolean unregisterDeserializer(ExperimenterDeserializerKey key);\r
29 \r
30     /**\r
31      * Registers action deserializer\r
32      * @param key used for deserializer lookup\r
33      * @param deserializer deserializer instance\r
34      */\r
35     public void registerActionDeserializer(ExperimenterActionDeserializerKey key,\r
36             OFGeneralDeserializer deserializer);\r
37 \r
38     /**\r
39      * Registers instruction deserializer\r
40      * @param key used for deserializer lookup\r
41      * @param deserializer deserializer instance\r
42      */\r
43     public void registerInstructionDeserializer(ExperimenterInstructionDeserializerKey key,\r
44             OFGeneralDeserializer deserializer);\r
45 \r
46     /**\r
47      * Registers match entry deserializer\r
48      * @param key used for deserializer lookup\r
49      * @param deserializer deserializer instance\r
50      */\r
51     public void registerMatchEntryDeserializer(MatchEntryDeserializerKey key,\r
52             OFGeneralDeserializer deserializer);\r
53 }\r