| Overview | Group | Tree | Graph | Index | Concepts |
This macro defines a user shift object, subclass of
IlcUserShiftObject), named name. The
referenced arguments start and end define
the interval [start, end) to be propagated. This
time interval corresponds to a possible position for the activity
ilcAct. When the argument isMin is true,
the interval [start, end) is the first possible
position of the activity, that is, [startMin, endMin).
Otherwise, the interval is the last possible position, that is,
[startMax, endMax). Then the body of the macro has to
affect valid values to start and end arguments.
Notice that the written code must return IlcTrue
when the computed interval [start, end) is valid,
and returns IlcFalse in case of fail.
For example, the following code defines a shift object that forbide beginning or ending during a week-end:
ILCUSERSHIFTOBJECT(userWeekEndShift, start, end, ilcAct, isMin) {
const IlcInt delta = (isMin) ? 7 : 4;
if (start % 7 > 4) then start = (start / 7) *7 + delta;
if (end % 7 > 4) then end = (end / 7) *7 + delta;
return IlcTrue;
}
The use of this macro is the only way to define a new subclass of
IlcShiftObject.
Since the argument nameI (name followed by "I")
is used to name the use shift object class, it is not possible to use the
same nameI for other classes.
See Also: