Next: Standards and Portability for W3Kit
Up: W3Kit 2.2, An Object-Oriented Toolkit for Interactive WWW Applications
Prev: The Object-oriented GUI Framework of W3Kit

A Tour Through the Standard W3Kit Main Routine

Now that the concepts are clear, we can take a look at the standard main routine for W3Kit applications and understand how it implements this organization.

Note the Objective-C message calls, enclosed in brackets []. They use the SmallTalk-style format [object message:arg].

	void main(int argc, char *argv[])
	{
	    W3App = [W3Application newArgc:argc argv:argv];
	    if([W3App loadFromHttp]) [W3App run];
	    else [W3App setContents:[MyForm new]];
	    [W3App printHtml];
	    [W3App free];
	    exit(0);
	}

Here is an ``exploded view'' which explains what is happening at each step:

W3App = [W3Application newArgc:argc argv:argv]

Reads in server input. Determines application name. Sets the global W3App equal to the resulting W3Application instance (the assignment is for emphasis only).

[W3App loadFromHttp]

Unarchives all of the interface widgets comprising the contents of the fill-out form, from the server input. The objects and their interconnections are recreated, but only their ``essential'' state is restored.

[W3App run]

Messages corresponding to ``simulated user events'', such as text entry and mouse clicks, are sent to the interface widgets. Events are sent in order of htmlID (see below). This process restores the ``non-essential'' state of the interface, as modified by the user on the client side.

[W3App setContents:[MyForm new]]

If no incoming HTTP query data was found, the application bootstraps itself, creating a start-up document. The [MyForm new] message is responsible for creating the application's default set of interface widgets. As each widget is created, it is automatically assigned an htmlID in order of creation.

/* optional synchronization or out-of-line return here */

Some applications can gain efficiency by delaying synchronization of state changes until after the event loop. Other applications may want to return an out-of-line image (using the display method of the 2D and 3D graphics widgets) instead of printing out a new fill-out form.

[W3App printHtml]

The interface objects archive their ``essential'' state, and this information is automatically encoded for insertion into the new fill-out form. Server output is initiated, and the contents of the new fill-out form are printed out to it (using the form object's printHtml method). Inlined images are also generated during this process.

[W3App free]

Cleanup.


Next: Standards and Portability for W3Kit
Up: W3Kit 2.2, An Object-Oriented Toolkit for Interactive WWW Applications
Prev: The Object-oriented GUI Framework of W3Kit

[HOME] The Geometry Center Home Page

Author: Paul Burchard
Comments to: webmaster@geom.umn.edu
Created: Apr 18 1994 --- Last modified: Jun 18 1996