sodelayqueuesensor(3)
NAME
SoDelayQueueSensor
SYNOPSIS
#include <Inventor/sensors/SoDelayQueueSensor.h> Inherits SoSensor. Inherited by SoDataSensor, SoIdleSensor, and SoOneShotSensor.
Detailed Description
The SoDelayQueueSensor class is the abstract base class for priority
scheduled sensors.
Delay queue sensors are invoked upon various events not related to time
occurrences. See documentation of subclasses to see which types of
events can be surveilled by the builtin sensor types.
The priority values can be used to queue events by their importance, so
the sensors are triggered in the sequence you want.
The queue of delay sensors (i.e. instances of subclasses of
SoDelayQueueSensor) will be processed as soon as either the run-time
system is idle, or if it is continually busy they will be processed
within a fixed amount of time.
- This time interval is by default 1/12th of a second, but can be
controlled with the SoSensorManager::setDelaySensorTimeout() interface. - Public Member Functions
- SoDelayQueueSensor (void)
SoDelayQueueSensor (SoSensorCB *func, void *data) virtual ~SoDelayQueueSensor (void) void setPriority (uint32_t pri)
uint32_t getPriority (void) const
virtual void schedule (void)
virtual void unschedule (void)
virtual SbBool isScheduled (void) const
virtual SbBool isIdleOnly (void) const
virtual void trigger (void) - Static Public Member Functions
- static uint32_t getDefaultPriority (void)
- Protected Attributes
- SbBool scheduled
Constructor & Destructor Documentation
- SoDelayQueueSensor::SoDelayQueueSensor (void)
- Default constructor.
- References getDefaultPriority(), and scheduled.
- SoDelayQueueSensor::SoDelayQueueSensor (SoSensorCB * func, void * data)
- Constructor taking as arguments the sensor callback function and the
userdata which will be passed the callback. - See also:
setFunction(), setData()
- References getDefaultPriority(), and scheduled.
- SoDelayQueueSensor::~SoDelayQueueSensor (void) [virtual]
- Destructor.
- References isScheduled(), and unschedule().
Member Function Documentation
- void SoDelayQueueSensor::setPriority (uint32_t pri)
- Set this sensor's priority in the scheduling queue. When sensors are
processed, high priority sensors will trigger before low priority
sensors. - Please note that a low number means a high priority. A sensor with
priority 5 will trigger before a sensor with priority 6. - Sensors with priority 0 have a special meaning in Coin/Inventor. They
are called immediate sensors, and will trigger immediately after the
current notification chain has finished. Priority 0 sensors should be
used with care, since they might lead to bad performance if you do some processing in the sensor callback. - See also:
getPriority(), getDefaultPriority()
- References isScheduled(), schedule(), and unschedule().
- Referenced by SoWriteAction::beginTraversal(), and
SoTranslate2Dragger::SoTranslate2Dragger(). - uint32_t SoDelayQueueSensor::getPriority (void) const
- Returns sensor scheduling priority.
- See also:
setPriority(), getDefaultPriority()
- Referenced by SoSensorManager::insertDelaySensor(), and
SoDataSensor::notify(). - uint32_t SoDelayQueueSensor::getDefaultPriority (void) [static]
- Returns the default scheduling priority value. The default sensor
priority is 100. - See also:
getPriority()
- Referenced by SoVRMLScript::notify(), and SoDelayQueueSensor().
- void SoDelayQueueSensor::schedule (void) [virtual]
- Put the sensor in the global delay queue. This means it will be
triggered either when the CPU is idle, or when the specified delay
queue time-out is reached. - See also:
SoDB::setDelaySensorTimeout(), unschedule(), isScheduled()
- Implements SoSensor.
- References SoDB::getSensorManager(),
SoSensorManager::insertDelaySensor(), and scheduled. - Referenced by SoDataSensor::notify(), and setPriority().
- void SoDelayQueueSensor::unschedule (void) [virtual]
- Remove sensor from the delay queue, without triggering it first.
- See also:
schedule(), isScheduled()
- Implements SoSensor.
- References SoDB::getSensorManager(), isScheduled(),
SoDebugError::postWarning(), SoSensorManager::removeDelaySensor(), and scheduled. - Referenced by SoPathSensor::detach(), SoFieldSensor::detach(),
setPriority(), and ~SoDelayQueueSensor(). - SbBool SoDelayQueueSensor::isScheduled (void) const [virtual]
- Check if this sensor is scheduled for triggering.
- See also:
schedule(), unschedule()
- Implements SoSensor.
- References scheduled.
- Referenced by SoPathSensor::detach(), SoFieldSensor::detach(),
setPriority(), unschedule(), and ~SoDelayQueueSensor(). - SbBool SoDelayQueueSensor::isIdleOnly (void) const [virtual]
- Returns a flag indicating whether or not the sensor should only be
triggered if the application is truly idle, and not when the delay queue is processed because of the delay queue timeout. - See also:
SoDB::setDelaySensorTimeout()
- void SoDelayQueueSensor::trigger (void) [virtual]
- Trigger the sensor's callback function.
- Reimplemented from SoSensor.
- Reimplemented in SoDataSensor, and SoFieldSensor.
- References scheduled, and SoSensor::trigger().
- Referenced by SoDataSensor::trigger().
Member Data Documentation
- SbBool SoDelayQueueSensor::scheduled [protected]
- TRUE if the sensor is currently scheduled.
- Referenced by isScheduled(), schedule(), SoDelayQueueSensor(),
trigger(), and unschedule().
Author
- Generated automatically by Doxygen for Coin from the source code.