resourceSpecification

Class: matlab.DiscreteEventSystem
Package: matlab

Create specifications for a resource acquisition or a resource release event

Syntax

resRequest = resourceSpecification(resource,amount)

Description

resRequest = resourceSpecification(resource,amount) specifies the names and the amount of the resources for the eventAcquireResource or the eventReleaseResource requests.

For example, this code specifies one unit of Resource1 and two units of Resource2.

resRequest = obj.resourceSpecification('Resource1', 1);
resRequest = [resReq obj.resourceSpecification('Resource2', 2)];

If you specify an amount for the eventReleaseResource larger than the amount that was acquired earlier, all the previously acquired resources are released.

For example, suppose that an entity previously acquired three resources of type Resource1 and four resources of type Resource2. This code specifies the amounts for eventReleaseResource.

resRequest = obj.resourceSpecification('Resource1', 2);
resRequest = [resReq obj.resourceSpecification('Resource2', 5)];
     event = eventReleaseResource(resReq, ‘relinquish’);

After the release, the entity has one resource of type Resource1 and zero resources of type Resource2.

You can specify the release of all previously acquired resources by using eventReleaseAllResources.

Input Arguments

expand all

Specify the name of the resources for the eventAcquireResource or the eventReleaseResource requests. You can specify more than one resource.

Specify the amount of resources for the eventAcquireResource or the eventReleaseResource requests.

Output Arguments

expand all

Resource request for an acquisition or a release event specified as a vector of MATLAB structures.

Examples

When an entity enters the storage element, it acquires resources. The entity acquires one resource of type Resource1 and one resource of type Resource2, which are defined as specifications. The specifications are then used for eventAcquireResource with tag MyResourceAcquireEvent.

  function [entity,events] = entry(obj, storage, entity, source)
            % On entry, acquire one resource of type Resource1 and one resource of type Resource2.
            resRequest(1) = obj.resourceSpecification('Resource1', 1);
            resRequest(2) = obj.resourceSpecification('Resource2', 1);
            events = obj.eventAcquireResource(resRequest, 'MyResourceAcquireEvent');       
  end

Introduced in R2019a