SURVIVOR: Format Module Specification

Specification

  1. Format modules must be reentrant. That is, if a format module is run more than once simultaneously, all instances must run to completion without interference.

  2. Format modules must not change their process group by any means, including via setsid(), setpgid(), setpgrp(), or any similar function.

  3. Each module must place its source code in a directory underneath survivor/src/modules/format/ with the following conventions:
    1. The name of the directory must be format/modulename/.

    2. A Makefile.in must be present, with directives for clean, veryclean, all, install, and install-remote.

      The install should, except in exceptional circumstances, install the module into @prefix@/mod/transmit, owned by @INST_USER@ and @INST_GROUP@, mode 555.

      The install-remote directive should be the same as install, except where it does not make sense for the module to be installed as part of a remote distribution. (Format modules typically do not need to be installed remotely.)

    3. Documentation describing the module should be in doc/fmm-modulename.html

  4. Format modules do not accept any command line arguments, but instead receive their required data via a SurvivorAlertData element provided in an XML document on stdin.

  5. Format modules should not write output files.

  6. Format modules must generate output on stdout consisting of an XML document containing a SurvivorFormattedAlertData element.

  7. If the ReplyOK attribute in the SurvivorAlertData document is yes, then the scheduler is sending a message suitable for a two way reply. Format modules may honor this value or may change this value to no when generating the SurvivorFormattedAlertData document, however the value may not be changed from no to yes.

  8. Format modules must exit with one of the following values (as defined in include/survivor.H):
    • MODEXEC_OK: Alert formatted successfully.
    • MODEXEC_PROBLEM: An error occurred in formatting the alert.
    • MODEXEC_MISCONFIG: The module is misconfigured and is unable to format the alert.


$Date: 2006/11/20 00:06:30 $
$Revision: 0.5 $
keywords