This is Event.h in view mode; [Download] [Up]
// // Event.h // Copyright (c) 1989, 1990 by Jiro Nakamura // All rights reserved // // Interface definition of class Event. Event handles the database management // of Cassandra. // Event is due for total rewriting. // // RCS Information // Revision Number-> $Revision: 1.11 $ // Last Revised-> $Date: 91/11/01 17:23:52 $ // #import <objc/Object.h> #import <time.h> #import "cass.h" struct tm *fixAnniversary( struct tm *time, int mode, int sub); @interface Event : Object { char eventFile[128]; // The pathname of the event database EFileLink present, previous, next; // links to //previous and next records and itself // See documentation for queue implementation // details int eventType; // Event type // 0 = normal event (appointment) // 1 = reminder (day things) struct tm ts; // time structure see ctime(3) for details int priority, // Priority of message (when it gets viewed) destroy, // Destroy after message? 0= never destroy // 1 = destroy immediately after, // 2...n = destroy after n calls snoozeNo, // No of snooze times snoozeInt, // The snooze intervals themselves (in minutes) duration, // Duration of event (for scheduling) version; // What version Event file is this? // 0,blank - v1.4 or below // 1 v1.5 (includes duration) int anniversary; // Anniversary event, // 0 = no anniversary // (int) (anniversary / 100) is the "base // interval": // 1 = daily // 2 = weekly // 3 = monthly // 4 = yearly // 5 = special weekly - see "Annv Special Field" for // days. Base interval is a binary flag field // for which week it is in: Bit 0: First week // Bit 4: Fifth week // anniversary % 100 is the number of // "base interval" that // make up the "true interval" // between anniversary events int annvSpecial; // Anniversary special field // For Special weekly it holds the days in a binary // flag field: // Bit 0: Sunday // Bit 7: Saturday enum Actions {nothing, playSound, playAndDeleteSound, runCommand, mailPerson} alarmAction; BOOL showMessage; // Whether to show the alarmPanel or not char alarmSound[128]; /* The alarm sound name */ char msg[MESSAGE_SIZE]; /* message buffer */ id global; // Set by IB. Accessor to Global class } // Constructor: newAt: (const char *) eFile; // Description: Constructs new object instance of Event, with the Event // reading the file <eFile> +newAt: (const char *) eFile; - initOurStuff: (const char *) eFile; // used to set our-own default values /* low level routines dealing with event links themselves */ // Method: readEvent : (EFileLink) here // Arguments: (EFileLink) here -> the EFileLink to read from // Description: Reads the event directly from the queue with <here> // as the index. // Return Value: <self> - readEvent : (EFileLink) here; // Method: writeEvent : (EFileLink) here // Arguments: (EFileLink) here -> the EFileLink to write to // Description: Writes the event directly into the queue // with <here> as the index. Note that this is not an // insert, so the next and previous pointers from the // last read from this event should be preserved // or new pointers should be made and changed // appropriately. // Return Value: <self> - writeEvent : (EFileLink) here; /* write itself into the event file */ /* Higher level methods that deal somewhat abstractly with the queue */ // Method: firstEvent // Arguments: None. // Description: reads the first event. Equivalent to: // [ev readEvent:0]; // [ev readEvent: [ev next]]; // Return Value: returns with the first event read into its internals - firstEvent; // Method: (EFileLink) insertEvent // Arguments: None, event to be inserted must be already in object // Description: Inserts itself into the queue. It is intelligent // enough to convert all mistaken dates and times into the // proper format before inserting itself, so that other // modules that use it can simply add blindly to dates. // insertEvent is equivalent to insertEventFrom: 1 // Return Value: The particular EFileLink that it inserted itself into. - (EFileLink) insertEvent; // Method: (EFileLink) insertEventFrom: (EFileLink) here // Arguments: (EFileLink) here -> start inserting from <here> // Description: Same as insertEvent except that the search // for empty events starts from <here>, so that // if you KNOW where an deleted EFileLink is, // then you can use this method to speed things up // somewhat. // ReturnValue: The EFileLink that it inserted itself into. - (EFileLink) insertEventFrom: (EFileLink) here; // Method: deleteEvent: (EFileLink) here // Arguments: (EFileLink) here -> the event to delete // Description: Delete the event <here> // Return Value: <self> - deleteEvent : (EFileLink) here; // Method: int murderEvent : (EFileLink) here // Arguments: (EFileLink) here -> the event to "murder" // Description: "Murdering" an event deletes an event, but // if it is an anniversary // event, then it reinstalls it appropriately // in the future. See above for description // of state variables for "anniversary" events. // Return Value: The EFileLink where the new event lies. // -1 if it was not reinserted - (int) murderEvent : (EFileLink) here; /* Accessors */ /* See heading above for description of these variables */ - (EFileLink) present; - (EFileLink) previous; - (EFileLink) next; - (int) destroy; - (int) priority; - (int) anniversary; - (int) annvSpecial; - (int) snoozeNo; - (int) snoozeInt; - (BOOL) playAlarm; - (BOOL) showMessage; - (BOOL) deleteSound; - (BOOL) mailPerson; - (BOOL) runCommand; - (int) alarmAction; - (const char *) alarmSound; - (char *) message; - (struct tm *) time; - (int) mday; // These access the time structure directly, instead of - (int) mon; // using the structure accessors - (int) year; - (int) hour; - (int) min; - (int) sec; - (int) wday; - (int) yday; - setPresent : (EFileLink) apresent; - setPrevious : (EFileLink) aprevious; - setNext : (EFileLink) anext; - setDestroy : (int) dst; - setPriority : (int) si; - setAnniversary : (int) anv; - setAnnvSpecial: (int) anvS; - setSnoozeNo : (int) sn; - setSnoozeInt: (int) si; - setPlayAlarm: (BOOL) aFlag; - setShowMessage: (BOOL) aFlag; - setDeleteSound:(BOOL) aFlag; - setMailPerson:(BOOL) aFlag; - setAlarmSound: (const char *) alarmSound; - setMessage: (const char *) message; - setRunCommand: (BOOL) aFlag; - setTime : (struct tm *) time; - setAlarmAction: (int) aa; - setMday : (int) x; - setMon: (int) x; - setYear: (int) x; - setHour: (int) x; - setMin: (int) x; - setSec: (int) x; - setWday: (int) x; - setYday:(int) x; @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.