blob: 4fe08579e3c5f2409a65283011e6f3f1a2d3b8cc [file] [log] [blame]
Brian O'Connor8c166a72013-11-14 18:41:48 -08001package net.onrc.onos.ofcontroller.flowprogrammer;
Brian O'Connor0d6ba512013-11-05 15:17:44 -08002
Naoki Shiota2bdda572013-12-09 15:05:21 -08003import java.util.concurrent.Future;
4
Brian O'Connor0d6ba512013-11-05 15:17:44 -08005import net.floodlightcontroller.core.IOFSwitch;
Brian O'Connor0d6ba512013-11-05 15:17:44 -08006import net.floodlightcontroller.core.module.IFloodlightService;
7
8/**
Naoki Shiotab485d412013-11-26 12:04:19 -08009 * FlowSyncService is a service to synchronize GraphDB and switch's flow table.
10 * FlowSyncService offers APIs to trigger and interrupt synchronization explicitly.
11 * @author Brian
Brian O'Connor0d6ba512013-11-05 15:17:44 -080012 *
13 */
14public interface IFlowSyncService extends IFloodlightService {
Naoki Shiota2bdda572013-12-09 15:05:21 -080015 public Future<SyncResult> synchronize(IOFSwitch sw);
Brian O'Connorea1efbe2013-11-25 22:57:43 -080016
17 public void interrupt(IOFSwitch sw);
Naoki Shiota2bdda572013-12-09 15:05:21 -080018
19 public class SyncResult {
20 public final int flowAdded;
21 public final int flowRemoved;
22 public final int flowSkipped;
23
24 public SyncResult(int added, int removed, int skipped) {
25 flowAdded = added;
26 flowRemoved = removed;
27 flowSkipped = skipped;
28 }
29 }
Brian O'Connor0d6ba512013-11-05 15:17:44 -080030}