Interface ResourceStore

    • Method Detail

      • register

        boolean register​(List<? extends Resource> resources)
        Registers the resources in transactional way. Resource registration must be done before resource allocation. The state after completion of this method is all the resources are registered, or none of the given resources is registered. The whole registration fails when any one of the resource can't be registered.
        Parameters:
        resources - resources to be registered
        Returns:
        true if the registration succeeds, false otherwise
      • unregister

        boolean unregister​(List<? extends ResourceId> ids)
        Unregisters the resources in transactional way. The state after completion of this method is all the resources are unregistered, or none of the given resources is unregistered. The whole unregistration fails when any one of the resource can't be unregistered.
        Parameters:
        ids - resources to be unregistered
        Returns:
        true if the registration succeeds, false otherwise
      • allocate

        boolean allocate​(List<? extends Resource> resources,
                         ResourceConsumer consumer)
        Allocates the specified resources to the specified consumer in transactional way. The state after completion of this method is all the resources are allocated to the consumer, or no resource is allocated to the consumer. The whole allocation fails when any one of the resource can't be allocated.
        Parameters:
        resources - resources to be allocated
        consumer - resource consumer which the resources are allocated to
        Returns:
        true if the allocation succeeds, false otherwise.
      • release

        boolean release​(List<ResourceAllocation> allocations)
        Releases the specified allocated resources in transactional way. The state after completion of this method is all the resources are released from the consumer, or no resource is released. The whole release fails when any one of the resource can't be released. The size of the list of resources and that of consumers must be equal. The resource and consumer with the same position from the head of each list correspond to each other.
        Parameters:
        allocations - allocaitons to be released
        Returns:
        true if succeeds, otherwise false
      • getResourceAllocations

        List<ResourceAllocation> getResourceAllocations​(ResourceId id)
        Returns the resource consumers to whom the specified resource is allocated. The return value is a list having only one element when the given resource is discrete type. The return value may have multiple elements when the given resource is continuous type.
        Parameters:
        id - ID of the resource whose allocated consumer to be returned
        Returns:
        resource consumers who are allocated the resource. Returns empty list if there is no such consumer.
      • isAvailable

        boolean isAvailable​(Resource resource)
        Returns the availability of the specified resource.
        Parameters:
        resource - resource to check the availability
        Returns:
        true if available, otherwise false
      • getResources

        Collection<Resource> getResources​(ResourceConsumer consumer)
        Returns a collection of the resources allocated to the specified consumer.
        Parameters:
        consumer - resource consumer whose allocated resource are searched for
        Returns:
        a collection of the resources allocated to the specified consumer
      • getChildResources

        Set<Resource> getChildResources​(DiscreteResourceId parent)
        Returns a set of the child resources of the specified parent.
        Parameters:
        parent - ID of the parent of the resource to be returned
        Returns:
        a set of the child resources of the specified resource
      • getChildResources

        <T> Set<Resource> getChildResources​(DiscreteResourceId parent,
                                            Class<T> cls)
        Returns a set of the child resources of the specified parent and whose type is the specified class.
        Type Parameters:
        T - type of the resource
        Parameters:
        parent - ID of the parent of the resources to be returned
        cls - class instance of the children
        Returns:
        a set of the child resources of the specified parent and whose type is the specified class
      • getAllocatedResources

        <T> Collection<Resource> getAllocatedResources​(DiscreteResourceId parent,
                                                       Class<T> cls)
        Returns a collection of the resources which are children of the specified parent and whose type is the specified class.
        Type Parameters:
        T - type of the resource
        Parameters:
        parent - ID of the parent of the resources to be returned
        cls - class instance of the children
        Returns:
        a collection of the resources which belongs to the specified subject and whose type is the specified class.