blob: 9acd21548706c67b6006f04a5843163c80917a98 [file] [log] [blame]
tom95329eb2014-10-06 08:40:06 -07001package org.onlab.onos.net.intent.impl;
2
Thomas Vachuskab97cf282014-10-20 23:31:12 -07003import org.onlab.onos.net.NetworkResource;
tom95329eb2014-10-06 08:40:06 -07004import org.onlab.onos.net.intent.IntentId;
5
6import java.util.Collection;
7
8/**
9 * Auxiliary service for tracking intent path flows and for notifying the
10 * intent service of environment changes via topology change delegate.
11 */
tom85258ee2014-10-07 00:10:02 -070012public interface ObjectiveTrackerService {
tom95329eb2014-10-06 08:40:06 -070013
14 /**
15 * Sets a topology change delegate.
16 *
17 * @param delegate topology change delegate
18 */
19 void setDelegate(TopologyChangeDelegate delegate);
20
21 /**
22 * Unsets topology change delegate.
23 *
24 * @param delegate topology change delegate
25 */
26 void unsetDelegate(TopologyChangeDelegate delegate);
27
28 /**
29 * Adds a path flow to be tracked.
30 *
Thomas Vachuskab97cf282014-10-20 23:31:12 -070031 * @param intentId intent identity on whose behalf the path is being tracked
tom95329eb2014-10-06 08:40:06 -070032 * @param resources resources to track
33 */
Thomas Vachuskab97cf282014-10-20 23:31:12 -070034 public void addTrackedResources(IntentId intentId,
35 Collection<NetworkResource> resources);
tom95329eb2014-10-06 08:40:06 -070036
37 /**
38 * Removes a path flow to be tracked.
39 *
Thomas Vachuskab97cf282014-10-20 23:31:12 -070040 * @param intentId intent identity on whose behalf the path is being tracked
tom95329eb2014-10-06 08:40:06 -070041 * @param resources resources to stop tracking
42 */
Thomas Vachuskab97cf282014-10-20 23:31:12 -070043 public void removeTrackedResources(IntentId intentId,
44 Collection<NetworkResource> resources);
tom95329eb2014-10-06 08:40:06 -070045
46}