<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE erlref SYSTEM "erlref.dtd">

<erlref>
  <header>
    <copyright>
      <year>2000</year>
      <year>2013</year>
      <holder>Ericsson AB, All Rights Reserved</holder>
    </copyright>
    <legalnotice>
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
 
      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

  The Initial Developer of the Original Code is Ericsson AB.
    </legalnotice>

    <title>CosTimerEvent_TimerEventHandler</title>
    <prepared></prepared>
    <responsible></responsible>
    <docno></docno>
    <approved>Niclas Eklund</approved>
    <checked></checked>
    <date>2000-02-01</date>
    <rev>1.0</rev>
  </header>
  <module>CosTimerEvent_TimerEventHandler</module>
  <modulesummary>This module implements the OMG  CosTimerEvent::TimerEventHandler interface.</modulesummary>
  <description>
    <p>To get access to the record definitions for the structures use:      <br></br>
<c>-include_lib("cosTime/include/*.hrl").</c></p>
  </description>
  <funcs>
    <func>
      <name>'_get_status'(TimerEventHandler) -> Reply</name>
      <fsummary>Return the status of the target object</fsummary>
      <type>
        <v>TimerEventHandler = #objref</v>
        <v>Reply = 'ESTimeSet' | 'ESTimeCleared' | 'ESTriggered' | 'ESFailedTrigger'</v>
      </type>
      <desc>
        <p>This operation returns the status of the target object. </p>
        <list type="bulleted">
          <item>'ESTimeSet' - timer is set to trigger event(s).</item>
          <item>'ESTimeCleared' - no time set or the timer have been reset.</item>
          <item>'ESTriggered' - event has already been sent.</item>
          <item>'ESFailedTrigger' - tried to, but failed, sending the event.</item>
        </list>
        <p>If the target object is of type 'TTPeriodic' the status value 
          'ESTriggered' is not valid.</p>
      </desc>
    </func>
    <func>
      <name>time_set(TimerEventHandler) -> Reply</name>
      <fsummary>Return <c>true</c>if the time has been set for an event that is yet to be triggered, <c>false</c>otherwise. The outparameter represents the current time value of the target object</fsummary>
      <type>
        <v>TimerEventHandler = #objref</v>
        <v>Reply = {boolean(), UTO}</v>
        <v>UTO = #objref</v>
      </type>
      <desc>
        <p>This operation returns <c>true</c> if the time has been set for an event that
          is yet to be triggered, <c>false</c> otherwise. The outparameter represents
          the current time value of the target object.</p>
      </desc>
    </func>
    <func>
      <name>set_timer(TimerEventHandler, TimeType, TriggerTime) -> void()</name>
      <fsummary>Terminate terminate any previous set trigger, and set a new trigger specified by the <c>TimeType</c>and <c>UTO</c>objects</fsummary>
      <type>
        <v>TimerEventHandler = #objref</v>
        <v>TimeType = 'TTAbsolute' | 'TTRelative' | 'TTPeriodic'</v>
        <v>TriggerTime = UTO</v>
        <v>UTO = #objref</v>
      </type>
      <desc>
        <p>This operation terminates any previous set trigger, and set a new trigger
          specified by the <c>TimeType</c> and <c>UTO</c> objects.</p>
        <p>The relation between the UTO object and the TimeTypes are:</p>
        <list type="bulleted">
          <item>'TTAbsolute' - the UTO object must represent absolute time, i.e.,
           number of 100 nanoseconds passed since 15 october 
           1582 00:00.</item>
          <item>'TTRelative' - the UTO object must represent the from now until when
           the event should be triggered, e.g., within 30*10^7 nanoseconds.</item>
          <item>'TTPeriodic' - the same as for 'TTRelative', but this option
           will trigger an event periodically until timer cancelled.</item>
        </list>
      </desc>
    </func>
    <func>
      <name>cancel_timer(TimerEventHandler) -> boolean()</name>
      <fsummary>Cancel, if possible, triggering of event(s). Return<c>true</c>if an event is actually cancelled, <c>false</c>otherwise</fsummary>
      <type>
        <v>TimerEventHandler = #objref</v>
      </type>
      <desc>
        <p>This operation cancel, if possible, the triggering of event(s). Returns
          <c>true</c> if an event is actually cancelled, <c>false</c> otherwise.</p>
      </desc>
    </func>
    <func>
      <name>set_data(TimerEventHandler, EventData) -> ok</name>
      <fsummary>Change the event data sent when triggered</fsummary>
      <type>
        <v>TimerEventHandler = #objref</v>
        <v>EventData = #any</v>
      </type>
      <desc>
        <p>This operation changes the event data sent when triggered.</p>
      </desc>
    </func>
  </funcs>
  
</erlref>

