blob: 20a612e36c74a7a4edd7b0f9dafaa825bd92a7d3 [file] [log] [blame]
tome33cc1a2014-08-25 21:59:41 -07001package org.onlab.onos.provider;
tom0eb04ca2014-08-25 14:34:51 -07002
3/**
4 * Broker used for registering/unregistering information providers with the core.
5 *
6 * @param <T> type of the information provider
7 * @param <S> type of the provider service
8 */
9public interface ProviderBroker<T extends Provider, S extends ProviderService> {
10
11 /**
12 * Registers the supplied provider with the core.
13 *
14 * @param provider provider to be registered
15 * @return provider service for injecting information into core
16 */
17 S register(T provider);
18
19 /**
20 * Unregisters the supplied provider. As a result the previously issued
21 * provider service will be invalidated.
22 *
23 * @param provider provider to be unregistered
24 */
25 void unregister(T provider);
26
27}