Summary of files

Main programs

  • grid0.m Initialization of library package. (Swarm applications ordinarily just call initSwarm() which takes care of all needed library initialization.) Basic messages on GridTurtle object.

  • grid1a.m, grid1b.m, grid1c.m Tests of Array type. The setInitialValue:, setDefaultMember:, and setMemberBlock: options are each tested by variants of the same basic program.

  • grid2.m, grid2b.m Tests of List type. grid2 also tests inheritance from a class that implements the List type (not yet supported, but does work). grid2b uses an internal member slot (a special low-level implementation feature) in what is called a List, but should really be an OrderedSet. The messages being used for this are in the process of being changed, and should not be used.

  • grid3.m, grid3b.m Tests of Map type. grid3b uses an alternate compare function to handle integers rather than id values as keys.

  • grid4.m, grid4b.m Test of Set and OrderedSet types. The OrderedSet creation in grid4b uses message names that differ from the currently documented interface.

  • grid5.m Tests of ActionGroup execution independent of any schedule, both by itself and within a swarm.

  • grid6.m Test of running an entire top-level activity within an action of an already running activity.

  • grid7.m Tests of schedule execution and schedule merging, using various combinations of absolute, relative, and repeating schedules.

  • grid8.m Basic test of schedules running within a simulation swarm that is nested within an observer swarm.

  • grid9.m Test of two-level nested swarms using a custom subclass for the swarm. (Normal user subclassing should use the Swarm superclass provided in the objectbase library.)

  • mousetraps, Mousetrap.m Sample application (main program and supporting class) that uses dynamic scheduling. This application is much the same as the mousetrap model of a nuclear chain reaction that is also implemented as a stand-alone application, but it runs outside any user interface framework and links just with the core libraries defobj, collections, and activity.

  • mousetraps2, Mousetrap2.m Variant of mousetraps that schedules actions at subclock divisions of a coarser-grained schedule. Used to test this capability; intended only for specialized use when ordinary time units can't be divided finely enough.

  • strtest.m Simple test of basic operations on the String type.

Support files

  • Makefile Make file for all programs in the directory. Change the SWARMHOME macro setting at the top to reflect installation location of the swarm libraries relative to the local directory. This make file requires the GNU make program; neither Sun nor other makes are compatible with the GNU-specific conventions used.

  • grid.h Header file that defines the GridTurtle object type. This file is also compiled to publish external definitions for the grid module. Conventions for coding the header file of a library module are not fully documented yet, but this is a working sample.

  • grid.m Initialization of the grid module. Not normally a part of an application program, but included to test module facilities outside of a library. Methods of coding this file are not currently documented, but this is a working sample.

  • GridTurtle.m Code for the class that implements the GridTurtle object type. The interface for this type is specified in the file grid.h. Methods for coding classes that implement a type (see library interface conventions for a summary of the differences between types and classes) are not currently documented. The important thing to know is simply that a library implements all the messages declared as part of a type.