ftp.nice.ch/pub/next/tools/workspace/Cassandra.1.7a.s.tar.gz#/Cassandra/Event.h

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.