On Fri, Apr 13, 2001 at 12:41:09PM -0400, Ronald J Kimball wrote:

> Boston.pm will be having a technical meeting this coming Tuesday, April 17,
> at the offices of Boston.com, starting at 7:30 pm.

> I would like to present one of two projects that I have been working on
> recently:
> 
> The serious project is a package that allows for flexibly scheduling items,
> with limits on the number of items in certain time periods.  Each item can
> control how it is rescheduled when there is a conflict.

Good news!  I will be presenting the aforementioned scheduling package.

This package contains two modules, Time::Schedule and Time::Schedule::Item,
which work together to create a schedule.  The Time::Schedule object has
limits on the number of items that may be scheduled within a certain time
period (i.e. no more than three items every hour or six items every three
hours).

When there is a conflict in inserting a new Time::Schedule::Item object,
the object's reschedule() method is called with the next available time.
The reschedule() method may simply return the suggested time, or it may
calculate and return a preferred later time.  In the latter case,
reschedule() will be called again if that time is also unavailable.
Alternatively, reschedule() may cancel the insertion by returning a
negative number.

I designed this package with an eye towards flexibility.  Thus:
1. The Time::Schedule object does not care what the items are,
   nor what the time units correspond to.
2. Each Time::Schedule::Item may have its own arbitrarily complex
   reschedule() method.
3. Derived classes may be created from either or both modules.


Remember to RSVP to me if you plan on coming to the meeting on Tuesday.


Ronald

Reply via email to