2 * Copyright (c) 2016 Cisco Systems, Inc. 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.protocol.pcep.auto.bandwidth.extension;
11 import com.google.common.annotations.VisibleForTesting;
12 import java.util.ArrayList;
13 import java.util.List;
14 import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext;
15 import org.opendaylight.protocol.pcep.spi.pojo.AbstractPCEPExtensionProviderActivator;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.auto.bandwidth.rev181109.bandwidth.usage.object.BandwidthUsage;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.Pcrpt;
19 public class Activator extends AbstractPCEPExtensionProviderActivator {
21 private final int bandwidthUsageObjectType;
28 public Activator(final int bandwidthUsageObjectType) {
29 this.bandwidthUsageObjectType = bandwidthUsageObjectType;
33 protected List<AutoCloseable> startImpl(final PCEPExtensionProviderContext context) {
34 final List<AutoCloseable> regs = new ArrayList<>();
36 final BandwidthUsageObjectCodec bandwidthUsageObjectCodec =
37 new BandwidthUsageObjectCodec(this.bandwidthUsageObjectType);
38 regs.add(context.registerObjectParser(bandwidthUsageObjectCodec));
39 regs.add(context.registerObjectSerializer(BandwidthUsage.class, bandwidthUsageObjectCodec));
41 final PcRptMessageCodec pcRptMessageCodec = new PcRptMessageCodec(context.getObjectHandlerRegistry());
42 regs.add(context.registerMessageParser(PcRptMessageCodec.TYPE, pcRptMessageCodec));
43 regs.add(context.registerMessageSerializer(Pcrpt.class, pcRptMessageCodec));