The Process module has been implemented to represent all the possible actions that can be defined.
Each received entity is counted to record the number of received entities.
Also, an special attribute (the processStarttime) is assigned with the current simulation time to store the time the entity entered the module.
Depending on the selected action, the entity will be sent to the Delay block, if no seize action is selected, or otherwise to the Queue and Seize blocks.
The Queue and Seize blocks manage the seize operation of the resource, that is connected to the Process module using the S and ACK ports.
After the seize operation, a tally indicator records the time spent by the entity waiting for the resource,
and the processStartTime attribute is assigned again to store the beginning of the delay.
After the delay, and depending on the selected action, the entity will be sent to the Release block or to the Count block, that represents the exit of the module.
The Release block manages the release of the previously seized resource, sending the release petition through the port R.
The last count block stores the number of entities that depart the module, and the tally records the amount of time spent in the process.