ONOS-3124 Sketch of simplified intent domain service
Change-Id: I6d8304214897ba75a299bfd9bd90b4591ae8eb04
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/domain/IntentDomainService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/domain/IntentDomainService.java
index 41508ad..330e0da 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/domain/IntentDomainService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/domain/IntentDomainService.java
@@ -16,9 +16,10 @@
package org.onosproject.incubator.net.domain;
import com.google.common.annotations.Beta;
-import org.onlab.graph.Graph;
+import org.onosproject.event.ListenerService;
import org.onosproject.net.DeviceId;
+import java.util.List;
import java.util.Set;
/**
@@ -26,7 +27,8 @@
* domain providers.
*/
@Beta
-public interface IntentDomainService {
+public interface IntentDomainService
+ extends ListenerService<IntentDomainEvent, IntentDomainListener> {
/**
* Returns the intent domain for the given id.
@@ -52,25 +54,21 @@
Set<IntentDomain> getDomains(DeviceId deviceId);
/**
- * Returns the graph of intent domains and connection devices.
+ * Requests an intent primitive from the intent domain.
*
- * @return graph of network domains
+ * @param domainId id of target domain
+ * @param primitive intent primitive
+ * @return set of intent resources that satisfy the primitive
*/
- Graph<DomainVertex, DomainEdge> getDomainGraph();
+ List<IntentResource> request(IntentDomainId domainId, IntentPrimitive primitive);
/**
- * Adds the specified listener for intent domain events.
+ * Submits an intent resource to the intent domain for installation.
*
- * @param listener listener to be added
+ * @param domainId id of target domain
+ * @param resource intent resource
*/
- void addListener(IntentDomainListener listener);
-
- /**
- * Removes the specified listener for intent domain events.
- *
- * @param listener listener to be removed
- */
- void removeListener(IntentDomainListener listener);
+ void submit(IntentDomainId domainId, IntentResource resource);
}