_________________________________________________________________



NAME

     LTS - Access to logical time system (LTS) objects.


SYNOPSIS

     #include "tcm.h"

     double
     LTS_Speed (ltsPtr)

     double
     LTS_Offset (ltsPtr)

     double
     LTS_Value (ltsPtr)

     double
     LTS_SystemTimeOf (ltsPtr, lTime)

     double
     LTS_LogicalTimeOf (ltsPtr, sTime)

     double
     ReadSysClock ()

     int
     LTS_SetTrigger (ltsPtr, eventFlags, callback, callbackData)

     void
     LTS_UnsetTrigger (ltsptr, triggerNum)


ARGUMENTS

     ClientData   *ltsPtr   (in)      Pointer to an lts object.

     double       lTime     (in)      A logical time.

     double       sTime     (in)      A system time.

     int          eventFlags(in)      Flags   indicating    which
                                      changes   in  the  LTS  the
                                      trigger should care about.

     void(*)()    callback  (in)      Pointer to function trigger
                                      should call.

     ClientData   callbackData(in)    Pointer to trigger callback
                                      data.

     int          triggerNum(in)      Trigger   number   to    be
                                      deleted.

_________________________________________________________________


DESCRIPTION

     The above procedures return various properties or slots of a
     logical   time   system  object  (ltsPtr).   The  procedures
     LTS_SystemTimeOf and  LTS_LogicalTimeOf  convert  between  a
     logical  time  and a system time, based upon a given logical
     time system (ltsPtr).  The  procedure  ReadSysClock  returns
     the current system time.

     The LTS_SetTrigger procedure is used to register a  callback
     with  the  lts  to  be  invoked upon a particular event. The
     eventFlags parameter to this procedure can be any  logically
     or'd  combination  of  LTS_SPEED_FLAG,  LTS_OFFSET_FLAG, and
     LTS_VALUE_FLAG. If a change in speed, offset or value of the
     lts occurs and the appropriate flag was given, then callback
     is  called   with   callbackData   as   a   parameter.   The
     LTS_SetTrigger procedure returns an integer that can be used
     to identify the trigger when using the LTS_UnsetTrigger pro-
     cedure.

     The LTS_UnsetTrigger procedure is used to unregister a  pre-
     viously  registered  trigger.  This  procedure  requires the
     triggerNum  parameter  to  be  the   integer   returned   by
     LTS_SetTrigger  when  the trigger was originally registered.
     Please note that it is VERY important to unset  triggers  if
     the  callback procedure or callback data becomes invalid. If
     triggers are not unset,  then  when  the  LTS  changes,  the
     trigger  will  attempt  to  invoke  the registered callbacks
     without knowing whether the callbacks or the callbacks' data
     is valid which can lead to serious problems if they are not.




AUTHOR

     Brian Smith (bsmith@cs.berkeley.edu)
     Steve Yen (syen@cs.berkeley.edu)
     Ketan Patel (kpatel@cs.berkeley.edu)