Removed the rest of old BGP-RIB classes.
[bgpcep.git] / bgp / rib-spi / src / main / java / org / opendaylight / protocol / bgp / rib / spi / RIBExtensionProviderContext.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.protocol.bgp.rib.spi;
9
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.AddressFamily;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.SubsequentAddressFamily;
12
13 /**
14  * Interface for registering AdjRIBsIn factories. In order for a model-driven RIB implementation to work correctly, it
15  * has to know how to handle individual NLRI fields, whose encoding is specific to a AFI/SAFI pair. This interface
16  * exposes an interface for registration of factories for creating AdjRIBsIn instances, which handle the specifics.
17  */
18 public interface RIBExtensionProviderContext extends RIBExtensionConsumerContext {
19
20     /**
21      * Register a RIBSupport instance for a particular AFI/SAFI combination.
22      *
23      * @param afi Address Family identifier
24      * @param safi Subsequent Address Family identifier
25      * @param support T RIBSupport instance
26      * @return Registration handle. Call {@link RIBSupportRegistration#close()} method to remove it.
27      * @throws NullPointerException if any of the arguments is null
28      */
29     <T extends RIBSupport> RIBSupportRegistration<T> registerRIBSupport(Class<? extends AddressFamily> afi, Class<? extends SubsequentAddressFamily> safi, T support);
30 }