PonderTalk Object Reference

Managed Object
Domain Domain is the basic managed object for Ponder2 that supports hierarchies. View it like a directory or a folder in a filesystem
EventForwarder Forwards event from its attachment point to another part of the proximity event bus in this or another SMC. May also be used to forward events as ordinary messages to Managed Objects, useful for communicating with external event busses.
EventTemplate Managed object to act as a template for notifications (events). Each instance of the template contains a set of named arguments. These argument names can be retrieved for checking against Policies that expect to be activated by the events. When an event is created using this template the named arguments are packed into a map and sent around the system inside the event.
ExternalManagedObject A managed object that represents a remote managed object. It acts as a proxy, rerouting any requests that it receives to the remote object. An external managed object is not imported and used in the normal way, it is automatically instantiated and filled in by the clause when it recognises a remote address.
FactoryObject This managed object class is used to hold the factory classes for other managed objects and to instantiate new managed objects. This is the only way managed object types get into the system and the only way instances of those types are created (unless they are being restored).
HashInspector Creates a window making available for editing the values of a Hash. Understands, strings, numbers and booleans. If objects are in the hash, they will be displayed but will not be editable.
PonderTalk A Managed Object that parses and executes PonderTalk. PonderTalk can be supplied as strings from other PonderTalk statements or as strings received over RMI. The PonderTalk string is executed and the result is returned as a string. If an error occurs then a Ponder2Exception or a RemoteException is thrown. This managed object can also be used as a stand-alone program to send PonderTalk to a remote SMC using RMI.
1. Create this managed object in an SMC giving it a RMI name to use. e.g. MyPonder2
2. Send PonderTalk to the SMC using the Ponder2 JAR file e.g.
java -cp ponder2.jar net.ponder2.PonderTalk MyPonder2 any PonderTalk statement
SelfManagedCell The top level root domain of the whole system. Contains main() to start the whole thing off
Semaphore A semaphore object to enable synchronisation between managed objects. Typically used when interacting with GUIs
ShellInstance The actual class that an interactive user interacts with. One ShellInstance is spawned off in a new thread for each new connection received.
Timer Implements a multiple timer. Events may be fired off at regular intervals or after a single interval.
Time can be given in milliseconds as a simple number or as hh:mm:ss. e.g. 0:22 would be 22 seconds.
If the event is declared with a count attribute then the attribute will be set to the event number before each event is sent.
CsvHash TODO Description
DateTime TODO Description
DynamicString Implements a dynamic string. This string can be appended to and otherwise used as a String.
SampleObject Implements a hash or dictionary. This object holds name/object pairs. Objects may be added and removed.
Interface Provides an interface to remote systems. Commands may be added to this managed object which are mapped into commands to other, local, managed objects. Objects may also be exported by this interface in which case they are addressed in the normal manner using pathnames through the interface or by using the command "at:"
Mission Describes a mission which can be instantiated at a Mission Controller with a set of given interfaces.
MissionController A MissionController is responsible for managing missions in its SMC. It can load, unload, start and stop missions.
P2Array Holds a collection of Ponder2 objects. An array may be returned from sending a message to an object or or may be created in PonderTalk with the
 #( obj1 obj2 obj3) 
syntax.
P2Block Acts as a closure encompassing PonderTalk statements. Any variables used by the statements within the block are untouched once the block is created. Blocks may have arguments that are handed in when they are executed. When a block is executed it returns returns the value of the last statement executed within the block. c.f. function calls.
P2Boolean A boolean object.
P2Error Object containing error details created when an error is thrown in the code. Attributes include an error message and the PonderTalk source file name, line number and character number.

This is the argument received by the block onError: message.

P2Hash Implements a dictionary that stores objects indexed by keys. The keys are string types.
P2Number An object used for comparing and counting
P2String TODO Description
P2XML This is an internal Ponder2 XML object type. It represents an XML structure which can be operated upon with XPath commands
AuthorisationPolicy This is an Authorisation Policy. See http://ponder2.net/cgi-bin/moin.cgi/BasicScenario for more information on using authorisation policies.
Event The actual notification that is sent through the system. An Event is created using an EventTemplate which packages up named arguments and includes them in the Event. Several static methods aid in the creation and sending of Events.
ObligationPolicy an obligation policy that performs Event, Condition, Action rules for the SMC
Policy This class implements policies within the SMC. It is the base class for more specialised policy classes and manages all the common work.