ftp.nice.ch/pub/next/developer/objc/threads/Multi.s.tar.gz#/Multi/AppDelegate.h

This is AppDelegate.h in view mode; [Download] [Up]

/*----------------------------------------------------------------------------
   This is the "application delegate", the object messaged if the true
	 Application object doesn't understand a message.  We use this as a 
	 sort of substitute for main().  
	 
	 We're actually vended as a distributed object--other processes or
	 threads within this process can hook up to us and send us messages.
	 This is done to serialize output to the windowserver and appkit--
	 otherwise we run into problems with critical sections.
	 
	 We initialize some things in appDidInit:.  When the user hits one
	 of the menu items, we get the message and act upon it.
	 
	 This is not in any way, shape, or form optimized for speed.  There
	 are a bunch of things that could be done to speed things up.  The
	 biggest offendor is probably the CircleView class, which is banging
	 on the window server in various ways.
	 
	 This file is set up for a width of 130 columns, with tab stops
	 every two spaces.
	 
	 HISTORY 
	 
	 	10Oct93	DM	New
----------------------------------------------------------------------------*/


#import <appkit/appkit.h>

		// This is a formal protocol declaration of the object methods that must be implemented
		// by our example server.  These are implemented in the .m file.
		
@protocol ServerInterface

	// The main methods called by the threads, which output things to the screen.
	// All the data sent to these methods is strictly input.
	
- showIncreasing												// Show an increasing number in the text field
	:(in int)pNumber;											// INPUT: the number to show
	
- showPrime															// Show a prime number in the text field
	:(in int)pPrime;											// INPUT: the prime to show
	
- showFib																// Show a fibonaci number in the text field
	:(in int)pFib;												// INPUT: the fib to show
	
- drawRandomCircleAt										// Draw a circle at the given point with the given radius
	:(in NXPoint)pPoint										// INPUT: where to draw it at (the center)
	withRadius:(in float)pRadius;					// INPUT: the radius

@end

	// Adopt the ServerInterface protocol as our own.  We're a subclass of Object.
	
@interface AppDelegate:Object <ServerInterface>
{
	id			increasingDisp;								// ScrollView that holds increasing number sequence
	id			primeDisp;										// ScrollView that holds increasing prime sequence
	id			fibDisp;											// ScrollView that holds increasing fibonacci sequence
	id			circleView;										// View in which random circles are displayed
	
	NXConnection	*connection;						// Our Distributed Object connection 
	
@public
	BOOL		isRunning;
}
	

// App initialization delegate method

- appDidInit:sender;										// called after application object is initialized

- doThreads:sender;											// Starts doing things--slamming numbers to the screen.  Clears things out, too
- stopThreads:sender;										// Stops all the treads

- addToText															// Utility method--adds text at end of given text obj
	:(Text*)pTextObj											// INPUT: text obj to add to
	string:(char*)pString;								// INPUT: the text we're adding

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.