blob: 9ed031c4a63b01e1cc29554a4567bf882aa10a3f [file] [log] [blame]
Toshio Koidea03915e2014-07-01 18:39:52 -07001package net.onrc.onos.core.matchaction;
2
Ray Milkeyc127a5a2014-08-20 11:22:12 -07003import java.util.Collections;
Toshio Koidea03915e2014-07-01 18:39:52 -07004import java.util.EventListener;
Ray Milkeyc127a5a2014-08-20 11:22:12 -07005import java.util.HashSet;
6import java.util.List;
Brian O'Connordee2e6b2014-08-12 11:34:51 -07007import java.util.Set;
Toshio Koidea03915e2014-07-01 18:39:52 -07008import net.onrc.onos.api.flowmanager.ConflictDetectionPolicy;
9
10/**
11 * Manages Match-Action entries.
12 * <p>
13 * TODO: Make all methods thread-safe
14 */
Toshio Koided8b077a2014-08-13 10:47:21 -070015public class MatchActionModule implements MatchActionService {
Toshio Koidea03915e2014-07-01 18:39:52 -070016
Ray Milkeyc127a5a2014-08-20 11:22:12 -070017 private final HashSet<MatchAction> currentOperations = new HashSet<>();
18
19 private boolean processMatchActionEntries(
20 final List<MatchActionOperationEntry> entries) {
21 int successfulOperations = 0;
22 for (final MatchActionOperationEntry entry : entries) {
23 if (currentOperations.add(entry.getTarget())) {
24 successfulOperations++;
25 }
26 }
27 return entries.size() == successfulOperations;
28 }
29
Toshio Koidea03915e2014-07-01 18:39:52 -070030 @Override
31 public boolean addMatchAction(MatchAction matchAction) {
Brian O'Connordee2e6b2014-08-12 11:34:51 -070032 return false;
Toshio Koidea03915e2014-07-01 18:39:52 -070033 }
34
35 @Override
Brian O'Connordee2e6b2014-08-12 11:34:51 -070036 public Set<MatchAction> getMatchActions() {
Ray Milkeyc127a5a2014-08-20 11:22:12 -070037 return Collections.unmodifiableSet(currentOperations);
Toshio Koidea03915e2014-07-01 18:39:52 -070038 }
39
40 @Override
Brian O'Connordee2e6b2014-08-12 11:34:51 -070041 public boolean executeOperations(final MatchActionOperations operations) {
Ray Milkeyc127a5a2014-08-20 11:22:12 -070042 return processMatchActionEntries(operations.getOperations());
Toshio Koidea03915e2014-07-01 18:39:52 -070043 }
44
45 @Override
46 public void setConflictDetectionPolicy(ConflictDetectionPolicy policy) {
47 // TODO Auto-generated method stub
48
49 }
50
51 @Override
52 public ConflictDetectionPolicy getConflictDetectionPolicy() {
53 // TODO Auto-generated method stub
54 return null;
55 }
56
57 @Override
58 public void addEventListener(EventListener listener) {
59 // TODO Auto-generated method stub
60
61 }
62
63 @Override
64 public void removeEventListener(EventListener listener) {
65 // TODO Auto-generated method stub
66
67 }
68}