<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.3 $ -->
  <refentry id="function.ibase-set-event-handler">
   <refnamediv>
    <refname>ibase_set_event_handler</refname>
    <refpurpose>
     Register a callback function to be called when events are posted
    </refpurpose> 
   </refnamediv>
   <refsect1>
    <title>Description</title>
     <methodsynopsis>
      <type>resource</type><methodname>ibase_set_event_handler</methodname>
      <methodparam choice="opt"><type>resource</type><parameter>connection</parameter></methodparam>
      <methodparam><type>callback</type><parameter>event_handler</parameter></methodparam>
      <methodparam><type>string</type><parameter>event_name1</parameter></methodparam>
      <methodparam choice="opt"><type>string</type><parameter>event_name2</parameter></methodparam>
      <methodparam choice="opt"><type>string</type><parameter>...</parameter></methodparam>
     </methodsynopsis>
    <para>
     This function registers a PHP user function as event handler for the specified
     events. The callback is called with the event name and the link resource as arguments
     whenever one of the specified events is posted by the database. The callback must
     return false if the event handler should be canceled. Any other return value is ignored.
	</para>
	<para>
     <informalexample>
      <programlisting role="php">
<![CDATA[
<?php

    function event_handler($event_name, $link)
    {
        if ($event_name=="NEW ORDER") {
            // process new order
            ibase_query($link, "UPDATE orders SET status='handled'");
        } else if ($event_name=="DB_SHUTDOWN") {
            // free event handler 
            return false;
        }
    }

    ibase_set_event_handler($link,"event_handler","NEW_ORDER","DB_SHUTDOWN");
?>
]]>
      </programlisting>
     </informalexample>
    </para>
    <para>
     The return value is an event resource. This resource can be used to free the event handler
     using <function>ibase_free_event_handler</function>.
    </para>
    <para>
     See also
     <function>ibase_free_event_handler</function> and
     <function>ibase_wait_event</function>.
    </para>
   </refsect1>
  </refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->