blob: 63d395f8ee7e4e5ee5eaf0d4e411163993da52bf [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.
Brian O'Connor0d6ba512013-11-05 15:17:44 -080011 *
Ray Milkey8e5170e2014-04-02 12:09:55 -070012 * @author Brian
Brian O'Connor0d6ba512013-11-05 15:17:44 -080013 */
14public interface IFlowSyncService extends IFloodlightService {
Naoki Shiota2bdda572013-12-09 15:05:21 -080015 public Future<SyncResult> synchronize(IOFSwitch sw);
Ray Milkey8e5170e2014-04-02 12:09:55 -070016
Brian O'Connorea1efbe2013-11-25 22:57:43 -080017 public void interrupt(IOFSwitch sw);
Ray Milkey8e5170e2014-04-02 12:09:55 -070018
Naoki Shiota2bdda572013-12-09 15:05:21 -080019 public class SyncResult {
Ray Milkey8e5170e2014-04-02 12:09:55 -070020 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 }
Naoki Shiota2bdda572013-12-09 15:05:21 -080029 }
Brian O'Connor0d6ba512013-11-05 15:17:44 -080030}