/*
* Copyright (c) 2015 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.openflowplugin.api.openflow.registry;
import org.opendaylight.openflowplugin.api.openflow.rpc.ItemLifeCycleSource;
import org.opendaylight.yangtools.concepts.Registration;
/**
* Registration point for any kind of lifecycle sources per device.
*/
public interface ItemLifeCycleRegistry {
/**
* register given life cycle source to known sources of device
*
* @param lifeCycleSource life cycle changes provider
* @return closeable registration
*/
Registration registerLifeCycleSource(ItemLifeCycleSource lifeCycleSource);
/**
* close all existing registrations
*/
void clear();
/**
* @return registered sources
*/
Iterable<ItemLifeCycleSource> getLifeCycleSources();
}