FRAMES NO FRAMES

Class IlcRCTextureFactoryI

Definition file: ilsched/texturei.h
Include file: <ilsched/ilsched.h>

IlcRCTextureFactoryI is the abstract implementation base class for a class that creates an object that is a subclass IlcRCTextureI. Instances of subclasses of this class are passed (via a handle class, IlcRCTextureFactory) to an IlcResourceTexture and used internally whenever a new individual curve object is required. Whenever a user-defined subclass of IlcRCTextureI is defined, a corresponding IlcRCTextureFactoryI subclass must also be created. Its sole purpose is to allocate the IlcRCTextureI subclass.

For more information, see Texture Measurements.

See Also:

Constructor and Destructor Summary
public IlcRCTextureFactoryI(IloSolver solver)
Method Summary
public virtual IlcRCTexturecreateRCTexture(IlcResourceConstraint, IlcResourceTexture) const
public IloSolvergetSolver() const
public virtual IlcBoolhasRealZeroCriticality() const
Constructor and Destructor Detail

IlcRCTextureFactoryI

public IlcRCTextureFactoryI(IloSolver solver)

This constructor creates an instance of IlcRCTextureFactoryI. As the class is abstract, this constructor should only be called by the constructor of subclasses of IlcRCTextureFactoryI.


Method Detail

createRCTexture

public virtual IlcRCTexture createRCTexture(IlcResourceConstraint, IlcResourceTexture) const

This pure virtual method returns a pointer to a newly allocated subclass of IlcRCTextureI which represents the individual curve of resource constraint rct for the resource associated with the resource texture texture. This is the function used internally by the IlcResourceTexture object to generate an individual curve for each resource constraint on a resource. The individual curve should be allocated on the solver heap. See the example code in the documentation of IlcRCTextureESTFactoryI.


getSolver

public IloSolver getSolver() const

This member function returns the IloSolver object passed in the constructor of the invoking object.


hasRealZeroCriticality

public virtual IlcBool hasRealZeroCriticality() const

This virtual method defines a characteristic of the IlcRCTextureI subclasses created by the invoking factory. If this function returns IlcTrue, it means that when the individual demand at some time point, t, for IlcRCTextureI instances allocated by the invoking factory is 0, it will remain at 0 until there is a backtrack in the search. Otherwise, if IlcFalse is returned, a time point may become zero and then some other value without backtracking.

For example, the IlcRCTextureProbabilisticI object has this characteristic because all possible time points at which the associated activity can execute have a non-zero demand. When a time point is given a zero demand it is because the possible time window of the resource constraint has been pruned in a monotonic fashion. In contrast, the IlcRCTextureESTI object does not have this characteristic. For example, the time point corresponding to getStartMin() + getDuration() + 1 has a zero individual demand. In a future search state however, the minimum start time may be increased, resulting in a non-zero demand for that time point.

This function is used to optimize the calculation of texture measurements in the cases where it returns IlcTrue.

The default return value for the method is IlcFalse.