nl.tudelft.simulation.examples.dsol.terminal

## Class IntResource<A extends Comparable<A>,R extends Number & Comparable<R>,T extends nl.tudelft.simulation.dsol.simtime.SimTime<A,R,T>>

- java.lang.Object
- - nl.tudelft.simulation.event.EventProducer
  - - nl.tudelft.simulation.examples.dsol.terminal.IntResource<A,R,T>

Type Parameters:
  `A` - the absolute time type to use in timed events
  `R` - the relative time type
  `T` - the simulation time type to use.

All Implemented Interfaces:
  Serializable, nl.tudelft.simulation.event.EventProducerInterface

Direct Known Subclasses:
  AGV, QC

    public class IntResource<A extends Comparable<A>,R extends Number & Comparable<R>,T extends nl.tudelft.simulation.dsol.simtime.SimTime<A,R,T>>
    extends nl.tudelft.simulation.event.EventProducer

A resource defines a shared and limited amount.

(c) 2002-2018 Delft University of Technology , the Netherlands.
See for project information www.simulation.tudelft.nl
License of use: Lesser General Public License (LGPL) , no warranty.

Since:
  1.5
Version:
  $Revision: 1.2 $ $Date: 2010/08/10 11:36:45 $
Author:
  Alexander Verbraeck
See Also:
  Serialized Form

### Nested Class Summary

Nested Classes
`static class` `IntResource.Request<A extends Comparable<A>,R extends Number & Comparable<R>,T extends nl.tudelft.simulation.dsol.simtime.SimTime<A,R,T>>` A Request.
`protected class` `IntResource.RequestComparator` the RequestComparator.

### Field Summary

Fields
`protected long` `claimedCapacity` claimedCapacity defines the currently claimed capacity.
`static int` `DEFAULT_REQUEST_PRIORITY` the default average priority.
`protected String` `description` the description of the resource.
`static int` `MAX_REQUEST_PRIORITY` the maximum priority.
`static int` `MIN_REQUEST_PRIORITY` the minimum priority.
`protected SortedSet<IntResource.Request<A,R,T>>` `requests` request defines the list of requestors for this resource.
`static nl.tudelft.simulation.event.EventType` `RESOURCE_REQUESTED_QUEUE_LENGTH` RESOURCE_REQUESTED_QUEUE_LENGTH fired on changes in queue length.
`protected nl.tudelft.simulation.dsol.simulators.DEVSSimulatorInterface<A,R,T>` `simulator` simulator defines the simulator on which is scheduled.
`static nl.tudelft.simulation.event.EventType` `UTILIZATION_EVENT` UTILIZATION_EVENT is fired on activity.

### Fields inherited from class nl.tudelft.simulation.event.EventProducer

`listeners`

### Fields inherited from interface nl.tudelft.simulation.event.EventProducerInterface

`FIRST_POSITION, LAST_POSITION`

### Constructor Summary

Constructors
Constructor and Description
`IntResource(nl.tudelft.simulation.dsol.simulators.DEVSSimulatorInterface<A,R,T> simulator, long capacity)` Method Resource.
`IntResource(nl.tudelft.simulation.dsol.simulators.DEVSSimulatorInterface<A,R,T> simulator, String description, long capacity)` Method Resource.

### Method Summary

All Methods Instance Methods Concrete Methods
`long` `getAvailableCapacity()` returns the currently available capacity on this resource.
`long` `getCapacity()` returns the maximum, and thus original capacity of the resource.
`long` `getClaimedCapacity()` returns the amount of currently claimed capacity.
`int` `getQueueLength()` returns the number of instances currently waiting for this resource.
`void` `releaseCapacity(long amount)` releases an amount of capacity from the resource.
`void` `requestCapacity(long amount, IntResourceRequestorInterface<A,R,T> requestor)` requests an amount of capacity from the resource.
`void` `requestCapacity(long amount, IntResourceRequestorInterface<A,R,T> requestor, int priority)` requests an amount of capacity from the resource.
`void` `setCapacity(long capacity)` sets the capacity of the resource.
`String` `toString()`

### Methods inherited from class nl.tudelft.simulation.event.EventProducer

`addListener, addListener, addListener, addListener, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, removeAllListeners, removeAllListeners, removeListener`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### UTILIZATION_EVENT

    public static final nl.tudelft.simulation.event.EventType UTILIZATION_EVENT

UTILIZATION_EVENT is fired on activity.

#### RESOURCE_REQUESTED_QUEUE_LENGTH

    public static final nl.tudelft.simulation.event.EventType RESOURCE_REQUESTED_QUEUE_LENGTH

RESOURCE_REQUESTED_QUEUE_LENGTH fired on changes in queue length.

#### MIN_REQUEST_PRIORITY

    public static final int MIN_REQUEST_PRIORITY

the minimum priority.

See Also:
  Constant Field Values

#### MAX_REQUEST_PRIORITY

    public static final int MAX_REQUEST_PRIORITY

the maximum priority.

See Also:
  Constant Field Values

#### DEFAULT_REQUEST_PRIORITY

    public static final int DEFAULT_REQUEST_PRIORITY

the default average priority.

See Also:
  Constant Field Values

#### claimedCapacity

    protected long claimedCapacity

claimedCapacity defines the currently claimed capacity.

#### requests

    protected SortedSet<IntResource.Request<A extends Comparable<A>,R extends Number & Comparable<R>,T extends nl.tudelft.simulation.dsol.simtime.SimTime<A,R,T>>> requests

request defines the list of requestors for this resource.

#### simulator

    protected nl.tudelft.simulation.dsol.simulators.DEVSSimulatorInterface<A extends Comparable<A>,R extends Number & Comparable<R>,T extends nl.tudelft.simulation.dsol.simtime.SimTime<A,R,T>> simulator

simulator defines the simulator on which is scheduled.

#### description

    protected String description

the description of the resource.

### Constructor Detail

#### IntResource

    public IntResource(nl.tudelft.simulation.dsol.simulators.DEVSSimulatorInterface<A,R,T> simulator,
                       String description,
                       long capacity)

Method Resource.

Parameters:
  `simulator` - on which is scheduled
  `description` - the description of this resource
  `capacity` - of the resource

#### IntResource

    public IntResource(nl.tudelft.simulation.dsol.simulators.DEVSSimulatorInterface<A,R,T> simulator,
                       long capacity)

Method Resource.

Parameters:
  `simulator` - on which is scheduled
  `capacity` - of the resource

### Method Detail

#### getCapacity

    public final long getCapacity()

returns the maximum, and thus original capacity of the resource.

Returns:
  capacity the maximum, and thus original capacity of the resource.

#### getClaimedCapacity

    public final long getClaimedCapacity()

returns the amount of currently claimed capacity.

Returns:
  the amount of currently claimed capacity.

#### getAvailableCapacity

    public final long getAvailableCapacity()

returns the currently available capacity on this resource. This method is implemented as `return this.getCapacity()-this.getClaimedCapacity()`

Returns:
  the currently available capacity on this resource.

#### getQueueLength

    public final int getQueueLength()

returns the number of instances currently waiting for this resource.

Returns:
  the number of instances currently waiting for this resource

#### setCapacity

    public final void setCapacity(long capacity)

sets the capacity of the resource.

Parameters:
  `capacity` - the new maximal capacity

#### requestCapacity

    public final void requestCapacity(long amount,
                                      IntResourceRequestorInterface<A,R,T> requestor)
                               throws RemoteException,
                                      nl.tudelft.simulation.dsol.SimRuntimeException

requests an amount of capacity from the resource.

Parameters:
  `amount` - the requested amount
  `requestor` - the RequestorInterface requesting the amount
Throws:
  `RemoteException` - on network failure
  `nl.tudelft.simulation.dsol.SimRuntimeException` - on other failures

#### requestCapacity

    public final void requestCapacity(long amount,
                                      IntResourceRequestorInterface<A,R,T> requestor,
                                      int priority)
                               throws RemoteException,
                                      nl.tudelft.simulation.dsol.SimRuntimeException

requests an amount of capacity from the resource.

Parameters:
  `amount` - the requested amount
  `requestor` - the RequestorInterface requesting the amount
  `priority` - the priority of the request
Throws:
  `RemoteException` - on network failure
  `nl.tudelft.simulation.dsol.SimRuntimeException` - on other failures

#### releaseCapacity

    public final void releaseCapacity(long amount)
                               throws RemoteException

releases an amount of capacity from the resource.

Parameters:
  `amount` - the amount to release
Throws:
  `RemoteException` - on network failure

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`