Object <- Datebook |
|
|
ChangeSeed MaxDate MinDate PurgePrompt PurgingWindowName |
| Field | Type | |
|---|---|---|
| PurgesDaily: | purgeDate: | Signed |
| purgeTimeRange: | Signed | |
| Datebook: | minDate: | Signed |
| maxDate: | Signed | |
| changeSeed: | Unsigned | |
| solitaryTasks: | TaskList | |
| repeatTasks: | TaskList | |
| actionTasks: | ObjectList | |
| nextTrigger: | TimedEvent | |
| nextActionTask: | Task | |
| systemSize: | Unsigned | |
| sizeSeed: | Unsigned |
instance Datebook tag; purgeDate: 0; purgeTimeRange: 0; minDate: 0; maxDate: 0; changeSeed: 0; solitaryTasks: nilObject; repeatTasks: nilObject; actionTasks: nilObject; nextTrigger: nilObject; nextActionTask: nilObject; systemSize: 0; sizeSeed: 0; end instance;
Define Class Datebook; inherits from Object, StorageContainer, HasReinitialize, PurgesDaily, HasTimedAction; field minDate: Signed, getter, setter; field maxDate: Signed, getter, setter; field changeSeed: Unsigned, getter, setter; field solitaryTasks: TaskList; field repeatTasks: TaskList; field actionTasks: ObjectList; field nextTrigger: TimedEvent; field nextActionTask: Task; field systemSize: Unsigned; // caches results of CalcStorageObjectsSize field sizeSeed: Unsigned; // stores value of change seed when storage objects size was last calculated operation CancelTask(task: Task); // removes task from Datebook's user interface overrides CurrentUserChanged; // set requester of any appointments whose requester is nilObject to new current user overrides StorageObjectsSize; // overridden to return cached value if size seed matches change seed overrides DestroySystemStorageContents; operation EachException(master: Task; function: EachFunction; parameters: Pointer): Task, noFail; operation FindMatchingTask(requester: FullContact; appointmentID: Unsigned): Task; operation ForgetTask(task: Task); // removes task from Datebook's knowledge overrides InstallInto; operation IsScheduled(task: Task): Boolean; operation ItemChanged(task: Task); overrides Reinitialize; operation NearestInstanceDate(master: Task; startDate: Signed; direction: SignedShort): Signed; // finds closest date on which an instance of this master would fall; direction > 0 looks forward, < 0 backward, = 0 both ways overrides Notice; // if user has changed date or time, recalculate which action task will be the next to fire operation ScheduleTask(task: Task); operation SetTaskException(task: Task; newValue: Boolean); operation Tasks(list: TaskList); // fills list with appointments in range of list overrides TimedAction; // rings alarms and calls TimedAction on each task whose time is due operation UniqueTasks(list: TaskList); // fills list with appointments in range of list, adding only one instance of each repeating appointment operation UpdateToDos(); operation UpdateTimedActions(); // offering suggestions for discarding overrides PurgePrompt; // returns iDatebookPurgeSingular or iDatebookPurgePlural, depending on count of purge list overrides PurgeTrigger; // returns iPurgeDatebookTrigger overrides PurgingWindowName; // returns iItemsToPurge overrides SearchForSuggestionsByDate; // offers up tasks (repeat or solitary) that end before given date overrides SuggestionSearchStatus; // returns ephemeral copy of iCheckingOldAppointments or iCheckingAppointments, depending on <recommendedOnly> // Returnables operation Returned(returnable: Object): Object, safe; attribute ChangeSeed: Unsigned; attribute MinDate: Signed; // dates of tasks must be no earlier than this attribute MaxDate: Signed; // dates of tasks must be no later than this overrides EachStorageObject, StorageInstallIndexical, InstalledReceiver; operation GetTasksCommon(list: TaskList; allInstances: Boolean), intrinsic; operation NearestInstanceDateCommon(master: Task; startDate: Signed; stopDate: Signed; forwardFlag: Boolean): Signed, intrinsic; end class;