Support for OTN using optical circuit intents.
Refined DeviceResourceService.
Change-Id: I489f368a0fac5f4a8d0a1a1cb716f845558db35e
diff --git a/core/api/src/main/java/org/onosproject/net/resource/device/DeviceResourceStore.java b/core/api/src/main/java/org/onosproject/net/resource/device/DeviceResourceStore.java
index 3437f4b..c73cab7 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/device/DeviceResourceStore.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/device/DeviceResourceStore.java
@@ -24,7 +24,60 @@
public interface DeviceResourceStore {
Set<Port> getFreePorts(DeviceId deviceId);
- void allocatePorts(Set<Port> port, IntentId intent);
+ /**
+ * Allocates the given ports to the given intent.
+ * @param ports set of ports to allocate
+ * @param intentId intent ID
+ * @return true if allocation was successful, false otherwise
+ */
+ boolean allocatePorts(Set<Port> ports, IntentId intentId);
- void releasePorts(IntentId intent);
+ /**
+ * Returns set of ports allocated for an intent.
+ *
+ * @param intentId the intent ID
+ * @return set of allocated ports
+ */
+ Set<Port> getAllocations(IntentId intentId);
+
+ /**
+ * Returns intent allocated to a port.
+ *
+ * @param port the port
+ * @return intent ID allocated to the port
+ */
+ IntentId getAllocations(Port port);
+
+ /**
+ * Allocates the mapping between the given intents.
+ *
+ * @param keyIntentId key intent ID
+ * @param valIntentId value intent ID
+ * @return true if mapping was successful, false otherwise
+ */
+ boolean allocateMapping(IntentId keyIntentId, IntentId valIntentId);
+
+ /**
+ * Returns the set of intents mapped to a lower intent.
+ *
+ * @param intentId intent ID
+ * @return set of intent IDs
+ */
+ Set<IntentId> getMapping(IntentId intentId);
+
+ /**
+ * Releases the mapping between the given intents.
+ *
+ * @param keyIntentId key intent ID
+ * @param valIntentId value intent ID
+ */
+ void releaseMapping(IntentId keyIntentId, IntentId valIntentId);
+
+ /**
+ * Releases the ports allocated to the given intent.
+ *
+ * @param intentId intent ID
+ * @return true if release was successful, false otherwise
+ */
+ boolean releasePorts(IntentId intentId);
}