Changes for config subsystem and abstract decoder.
[l2switch.git] / packethandler / implementation / src / main / java / org / opendaylight / l2switch / packethandler / decoders / PacketDecoderServiceImpl.java
1 package org.opendaylight.l2switch.packethandler.decoders;
2
3 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.basepacket.rev140528.packet.PacketPayloadType;
4 import org.opendaylight.yang.gen.v1.urn.opendaylight.packetdecoder.config.impl.rev140528.PacketDecoderImplRuntimeMXBean;
5 import org.opendaylight.yangtools.yang.binding.Notification;
6
7 /**
8  * Created by amitmandke on 6/5/14.
9  */
10 public class PacketDecoderServiceImpl implements PacketDecoderService, PacketDecoderImplRuntimeMXBean {
11   private DecoderRegistry decoderRegistry;
12   private PacketNotificationRegistry packetNotificationRegistry;
13
14   public PacketDecoderServiceImpl(DecoderRegistry decoderRegistry, PacketNotificationRegistry packetNotificationRegistry) {
15     this.decoderRegistry = decoderRegistry;
16     this.packetNotificationRegistry = packetNotificationRegistry;
17   }
18
19   @Override
20   public <C extends Notification> void registerDecoder(PacketPayloadType packetPayloadType, PacketDecoder packetDecoder, Class<C> packetReceivedNotificationType) {
21     decoderRegistry.addDecoder(packetPayloadType, packetDecoder);
22     packetNotificationRegistry.trackPacketNotificationListener(packetPayloadType, packetReceivedNotificationType);
23   }
24 }