PDIF Example (with comments)


(pdif 

	(- Start Example 1. 
		In this example a fixed product is repeatedly delivered to a local popup window. 
		
		This startup file demonstrates the most simple PAM setup based
		on one PIM, one juggler, and one DIM. PIM, Provider Interface Module, 
		is synonymous with an input agent. DIM, Datacaster Interface Module, is
		synonymous with output agent.  Juggler is an agent that usually has inputs
		and outputs and may change the product as it moves from input to output.
		
		
		Note that strings are delimited by quote characters and 
		that whitespace is ignored.  
		Comments start with a dash after the left parenthesis.
		)
	
	(- the node section declares instances of processing modules)
	
	(node   

 	(- the executive has many attributes, most of which default to something useful.
 		The ones below are for example.
 		The debugKey attribute creates a simple window to monitor pam logs, otherwise
		output goes to the console device.  The logQueries parameter causes agents that
		do Http queries to log the full URL when it is used.
		Stack dumps are not
		echoed to the log window (or system console) but they do go to the log file.
		If you have a firewall you can uncomment the proxyHost and proxyPort
		attributes below and specify the appropriate values.
		)

		(exec exec 
			(debugKey logQueries)
			(serverPortNumber 9091)
			(id "My channels")
			(-proxyHost your.proxy.here)
			(-proxyPort 80)
			)

		(- All modules default to enabled true. We show it here for example purposes )
		(- generalTopic is an attribute of the passThru agent that is stamped onto
			products as they pass to DIMs.  Some DIMs use this attribute to
			present the product under the appropriate tabs or subchannels. The
			attribute is not needed in this example. )
		(- period is an attribute of the passThru agent and many other Jugglers.
			It represents time in seconds on which to "fire")
		
		(getPIMComplex "input" (enabled true)
			)
		(putDIM1 "output" (enabled true)
	 		)	
		(passThru "via" (enabled true)
			(period 120)
			)

		(- checkpointing would normally be active, but in this example we
			leave it commented out.  The checkpoint agent is actually a daemon
			agent which fires on a schedule and has no information inputs or outputs.
			By default there is no checkpointing.  Here we show how it
			would be enabled for 5 minute checkpoints.
			)
		
		(-checkpoint ckpt 
		 	(period 600)
		 	)
		)

	(- the connector section declares connections between agents)

	(connector
	
		(- There are other ways to specify these connections, this is one way)
		
		(PIM.from "input" (juggler.to "via"))
		(juggler.from "via" (DIM.to "output"))

	)
)