<component prefix="Products.ClockServer.datatypes">
  <sectiontype name="clock-server"
               datatype=".ClockServerFactory"
               implements="ZServer.server">
    <key name="method" datatype="string">
      <description>
      The traversal path (from the Zope root) to an
      executable Zope method (Python Script, external method, product
      method, etc).  The method must take no arguments.  Ex: "/site/methodname"
      </description>
    </key>
    <key name="shutdown_method" datatype="string">
      <description>
      The traversal path (from the Zope root) to an
      executable Zope method (Python Script, external method, product
      method, etc).  The method must take the following arguments:
        phase (number)
          Shutdown phase number.
          See Lifetime.py .
        time_in_phase (number)
        Time spent in current phase, in seconds.
      Given method path must not contain any argument.  Ex: "/site/methodname"
      </description>
    </key>
    <key name="period" datatype="integer" default="60">
    <description>
      The number of seconds between each clock "tick" (and
      thus each call to the above "method").  The lowest number
      providable here is typically 30 (this is the asyncore mainloop
      "timeout" value).  The default is 60.  Ex: "30"
    </description>
    </key>
    <key name="user" datatype="string">
    <description>
      A zope username. Ex: "admin"
    </description>
    </key>
    <key name="password" datatype="string">
    <description>
     The password for the zope username provided above.  Careful: this
     is obviously not encrypted in the config file. Ex: "123"
    </description>
    </key>
    <key name="host" datatype="string">
    <description>
      The hostname passed in via the "Host:" header in the
      faux request.  Could be useful if you have virtual host rules
      set up inside Zope itself. Ex: "www.example.com"
    </description>
    </key>
  </sectiontype>
</component>
