This section of the User Guide will introduce you to developing a BRAHMS Process. There is a section for each language that is currently available, other than 1266 (there's no such thing as a Quick Start with the 1266 bindings - use 1199 instead). You can choose any of these - if you do more than one, you will find that they only differ in the modifications you have to make to your process source file.
The behaviour of a simple Process is straightforward; it must perform the following basic steps.
The framework will fire many Events on a Process during its Life Cycle but, to begin with, most Processes will only need to respond to three. These events correspond directly with the basic steps in the behaviour listed above.
During initialisation, EVENT_STATE_SET will be received once. The Process will be presented with its parameters, which it should read. In addition, the Process may need to initialise further states (buffers, queues, accumulators, etc.).
During connection, EVENT_INIT_CONNECT will be called one or more times. On each call, the Process should create as many outputs as possible. Many processes will be able to create all of their outputs on the first call to this event. See the reference information for EVENT_INIT_CONNECT for full details, but the individual language Quick Start sections discuss this behaviour in more detail as well.
Many processes will not need to do any termination, but those that acquire private resources might. This should be done in response to EVENT_MODULE_DESTROY, which manifests in different ways in the different language bindings. In the C++ binding, for instance, the Process class destructor is called during this event, so the Process should free resources here.
|This is a documentation page for the BRAHMS Modular Execution (Simulation) Framework. For details of licensing and distribution, please click here. To advise of an error or omission, please click here.|