_________________________________________________________________
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)