SoTimerQueueSensor(3) | Coin | SoTimerQueueSensor(3) |
NAME
SoTimerQueueSensor - The SoTimerQueueSensor class is the abstract base class for sensors triggering on certain timer events.
SYNOPSIS
#include <Inventor/sensors/SoTimerQueueSensor.h>
Inherits SoSensor.
Inherited by SoAlarmSensor, and SoTimerSensor.
Public Member Functions
SoTimerQueueSensor (void)
SoTimerQueueSensor (SoSensorCB *func, void *data)
virtual ~SoTimerQueueSensor (void)
const SbTime & getTriggerTime (void) const
virtual void schedule (void)
virtual void unschedule (void)
virtual SbBool isScheduled (void) const
virtual void trigger (void)
Public Member Functions inherited from SoSensor
SoSensor (void)
SoSensor (SoSensorCB *func, void *data)
virtual ~SoSensor (void)
void setFunction (SoSensorCB *callbackfunction)
SoSensorCBPtr getFunction (void) const
void setData (void *callbackdata)
void * getData (void) const
void setNextInQueue (SoSensor *next)
SoSensor * getNextInQueue (void) const
Protected Member Functions
void setTriggerTime (const SbTime &time)
Protected Attributes
SbBool scheduled
Protected Attributes inherited from SoSensor
SoSensorCB * func
void * funcData
Additional Inherited Members
Static Public Member Functions inherited from SoSensor
static void initClass (void)
Detailed Description
The SoTimerQueueSensor class is the abstract base class for sensors triggering on certain timer events.
Timer sensors triggers upon specific points in time.
This class is an abstract superclass which collects the common interface of the various non-abstract timer sensor classes. See the documentation of the subclasses for information on what ways there are to specify base times, intervals, alarm-style single triggering, repeated triggers, etc.
Note that Coin timer sensors should in no way be considered 'hard real time'. That is, you cannot expect a timer to always trigger at the exact moment it was set up for. Delays in triggering could be due to other activities in Coin, a task suspended, or heavy load from other applications on the system. These situations could all cause the processing of sensor queues (from SoQt / SoWin / SoXt / whatever) to be slightly delayed, thereby causing delays in timer sensor triggering.
On modern systems, a timer will usually trigger within a few milliseconds of its designated time, though.
If a timer sensor cannot trigger at the exact moment it has been scheduled, it will be triggered at the first opportunity after the scheduled time has passed.
Here's a simple usage example. It's a standalone example, which only demonstrates how to set up a repeating timer sensor with a callback:
#include <Inventor/Xt/SoXt.h> #include <Inventor/sensors/SoTimerSensor.h> #include <cstdio> static void timeSensorCallback(void * data, SoSensor * sensor) { SbTime time = SbTime::getTimeOfDay(); SbString string = time.format("%S.%i"); (void)printf("%s\n", string.getString()); } int main(int argc, char ** argv) { SoXt::init("test"); SoTimerSensor * timeSensor = new SoTimerSensor; timeSensor->setFunction(timeSensorCallback); timeSensor->setBaseTime(SbTime::getTimeOfDay()); timeSensor->setInterval(1.0f); timeSensor->schedule(); SoXt::mainLoop(); return 0; }
Constructor & Destructor Documentation
SoTimerQueueSensor::SoTimerQueueSensor (void )
Default constructor.
SoTimerQueueSensor::SoTimerQueueSensor (SoSensorCB * func, void * data)
Constructor taking as arguments the sensor callback function and the userdata which will be passed the callback.
See also
SoTimerQueueSensor::~SoTimerQueueSensor (void ) [virtual]
Destructor.
Member Function Documentation
const SbTime & SoTimerQueueSensor::getTriggerTime (void ) const
Returns the time at which the sensor will trigger.
See also
void SoTimerQueueSensor::schedule (void ) [virtual]
Put the sensor in the global timer queue.
See also
Implements SoSensor.
Reimplemented in SoAlarmSensor, and SoTimerSensor.
void SoTimerQueueSensor::unschedule (void ) [virtual]
Remove sensor from the timer queue, without triggering it first.
See also
Implements SoSensor.
Reimplemented in SoTimerSensor.
SbBool SoTimerQueueSensor::isScheduled (void ) const [virtual]
Check if this sensor is scheduled for triggering.
See also
Implements SoSensor.
void SoTimerQueueSensor::trigger (void ) [virtual]
Trigger the sensor's callback function.
Reimplemented from SoSensor.
void SoTimerQueueSensor::setTriggerTime (const SbTime & time) [protected]
Set absolute time at which to trigger the sensor.
See also
Member Data Documentation
SbBool SoTimerQueueSensor::scheduled [protected]
TRUE if the sensor is currently scheduled.
Author
Generated automatically by Doxygen for Coin from the source code.
Fri Sep 6 2024 15:32:06 | Version 4.0.3 |