aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java')
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java173
1 files changed, 0 insertions, 173 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java
deleted file mode 100644
index 966de500..00000000
--- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.net.newresource;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.ImmutableList;
-import org.onosproject.event.ListenerService;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-/**
- * Service for allocating/releasing resource(s) and retrieving allocation(s) and availability.
- */
-@Beta
-public interface ResourceService extends ListenerService<ResourceEvent, ResourceListener> {
- /**
- * Allocates the specified resource to the specified user.
- *
- * @param consumer resource user which the resource is allocated to
- * @param resource resource to be allocated
- * @return allocation information enclosed by Optional. If the allocation fails, the return value is empty
- */
- default Optional<ResourceAllocation> allocate(ResourceConsumer consumer, ResourcePath resource) {
- checkNotNull(consumer);
- checkNotNull(resource);
-
- List<ResourceAllocation> allocations = allocate(consumer, ImmutableList.of(resource));
- if (allocations.isEmpty()) {
- return Optional.empty();
- }
-
- assert allocations.size() == 1;
-
- ResourceAllocation allocation = allocations.get(0);
-
- assert allocation.resource().equals(resource);
-
- // cast is ensured by the assertions above
- return Optional.of(allocation);
- }
-
- /**
- * Transactionally allocates the specified resources to the specified user.
- * All allocations are made when this method succeeds, or no allocation is made when this method fails.
- *
- * @param consumer resource user which the resources are allocated to
- * @param resources resources to be allocated
- * @return non-empty list of allocation information if succeeded, otherwise empty list
- */
- List<ResourceAllocation> allocate(ResourceConsumer consumer, List<ResourcePath> resources);
-
- /**
- * Transactionally allocates the specified resources to the specified user.
- * All allocations are made when this method succeeds, or no allocation is made when this method fails.
- *
- * @param consumer resource user which the resources are allocated to
- * @param resources resources to be allocated
- * @return non-empty list of allocation information if succeeded, otherwise empty list
- */
- default List<ResourceAllocation> allocate(ResourceConsumer consumer, ResourcePath... resources) {
- checkNotNull(consumer);
- checkNotNull(resources);
-
- return allocate(consumer, Arrays.asList(resources));
- }
-
- /**
- * Releases the specified resource allocation.
- *
- * @param allocation resource allocation to be released
- * @return true if succeeded, otherwise false
- */
- default boolean release(ResourceAllocation allocation) {
- checkNotNull(allocation);
-
- return release(ImmutableList.of(allocation));
- }
-
- /**
- * Transactionally releases the specified resource allocations.
- * All allocations are released when this method succeeded, or no allocation is released when this method fails.
- *
- * @param allocations resource allocations to be released
- * @return true if succeeded, otherwise false
- */
- boolean release(List<ResourceAllocation> allocations);
-
- /**
- * Transactionally releases the specified resource allocations.
- * All allocations are released when this method succeeded, or no allocation is released when this method fails.
- *
- * @param allocations resource allocations to be released
- * @return true if succeeded, otherwise false
- */
- default boolean release(ResourceAllocation... allocations) {
- checkNotNull(allocations);
-
- return release(ImmutableList.copyOf(allocations));
- }
-
- /**
- * Transactionally releases the resources allocated to the specified consumer.
- * All allocations are released when this method succeeded, or no allocation is released when this method fails.
- *
- * @param consumer consumer whose allocated resources are to be released
- * @return true if succeeded, otherwise false
- */
- boolean release(ResourceConsumer consumer);
-
- /**
- * Returns resource allocation of the specified resource.
- *
- * @param resource resource to check the allocation
- * @return allocation information enclosed by Optional.
- * If the resource is not allocated, the return value is empty.
- */
- Optional<ResourceAllocation> getResourceAllocation(ResourcePath resource);
-
- /**
- * Returns allocated resources being as children of the specified parent and being the specified resource type.
- *
- * @param parent parent resource path
- * @param cls class to specify a type of resource
- * @param <T> type of the resource
- * @return non-empty collection of resource allocations if resources are allocated with the subject and type,
- * empty collection if no resource is allocated with the subject and type
- */
- <T> Collection<ResourceAllocation> getResourceAllocations(ResourcePath parent, Class<T> cls);
-
- /**
- * Returns resources allocated to the specified consumer.
- *
- * @param consumer consumer whose allocated resources are to be returned
- * @return resources allocated to the consumer
- */
- Collection<ResourceAllocation> getResourceAllocations(ResourceConsumer consumer);
-
- /**
- * Returns resource paths that point available child resources under the specified resource path.
- *
- * @param parent parent resource path
- * @return available resource paths under the specified resource path
- */
- Collection<ResourcePath> getAvailableResources(ResourcePath parent);
-
- /**
- * Returns the availability of the specified resource.
- *
- * @param resource resource to check the availability
- * @return true if available, otherwise false
- */
- boolean isAvailable(ResourcePath resource);
-
- // TODO: listener and event mechanism need to be considered
-}