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"))
)
)