/* * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.protocol.bgp.rib.spi; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.AddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.SubsequentAddressFamily; /** * Interface for registering AdjRIBsIn factories. In order for a model-driven * RIB implementation to work correctly, it has to know how to handle * individual NLRI fields, whose encoding is specific to a AFI/SAFI pair. This * interface exposes an interface for registration of factories for creating * AdjRIBsIn instances, which handle the specifics. */ public interface RIBExtensionProviderContext extends RIBExtensionConsumerContext { /** * Register a AdjRIBsInFactory for a particular AFI/SAFI combination. * * @param afi Address Family identifier * @param safi Subsequent Address Family identifier * @param factory AdjRIBsInFactory * @return Registration handle. Call its close() method to remove it. */ AutoCloseable registerAdjRIBsInFactory(Class afi, Class safi, AdjRIBsInFactory factory); }