Класс: mATLAB.
Пакет: mATLAB
Создайте спецификации для приобретения ресурса или события релиза ресурса
resRequest = resourceSpecification(resource,amount)
задает имена и сумму ресурсов для resRequest
= resourceSpecification(resource
,amount
)eventAcquireResource
или eventReleaseResource
запросы.
Например, этот код задает один модуль Resource1
и два модуля Resource2
.
resRequest = obj.resourceSpecification('Resource1', 1); resRequest = [resReq obj.resourceSpecification('Resource2', 2)];
Если вы задаете сумму для eventReleaseResource
больше, чем сумма, которая была получена ранее, все ранее полученные средства высвобождены.
Например, предположите, что сущность ранее получила три ресурса типа Resource1
и четыре ресурса типа Resource2
. Этот код задает суммы для eventReleaseResource
.
resRequest = obj.resourceSpecification('Resource1', 2); resRequest = [resReq obj.resourceSpecification('Resource2', 5)]; event = eventReleaseResource(resReq, ‘relinquish’);
После релиза сущность имеет один ресурс типа Resource1
и нулевые ресурсы типа Resource2
.
Можно задать релиз всех ранее полученных ресурсов при помощи eventReleaseAllResources
.
Когда сущность вводит запоминающий элемент, она получает ресурсы. Сущность получает один ресурс типа Resource1
и один ресурс типа Resource2
, которые заданы как спецификации. Спецификации затем используются в eventAcquireResource
с тегом 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
cancelAcquireResource
| eventAcquireResource
| eventForward
| eventReleaseResource
| getResourceNamesImpl
| matlab.DiscreteEventSystem
| resourceAcquired